Comment le mauvais est ignorant Oracle DUP_VAL_ON_INDEX exception?

J'ai une table où je suis l'enregistrement si un utilisateur a consulté un objet au moins une fois, d'où:

 HasViewed
     ObjectID  number (FK to Object table)
     UserId    number (FK to Users table)

Les deux champs ne sont PAS NULL et, ensemble, forment la Clé Primaire.

Ma question est, depuis je ne m'inquiète pas combien de fois quelqu'un a vu un objet (après le premier), j'ai deux options de gestion des inserts.

  • Faire un SELECT count(*) ... et si aucun enregistrement n'est trouvé, insérer un nouvel enregistrement.
  • Toujours il suffit d'insérer un disque, et si il jette un DUP_VAL_ON_INDEX exceptions (indiquant qu'il existait déjà un tel enregistrement), juste l'ignorer.

Quel est l'inconvénient de choisir la deuxième option?

Mise à JOUR:

Je suppose que la meilleure façon de le dire est : "Est la surcharge causée par l'exception de pire que la surcharge causée par le select initial?"

OriginalL'auteur James Curran | 2008-12-08