EN vs OU de l'Oracle, qui plus vite?

Je suis du développement d'une application qui traite beaucoup de données dans la base de données Oracle.

Dans certains cas, je dois faire beaucoup d'objet en fonction d'une liste de conditions, et je l'utilise SELECT ...FROM.. WHERE... IN..., mais le IN de l'expression accepte une liste dont la taille est au maximum de 1 000 articles.

Donc j'utilise OR expression à la place, mais comme je l'ai observer, peut-être que cette requête (à l'aide de OR) est plus lent que IN (avec la même liste de conditions). Est-il juste? Et si oui, comment améliorer la vitesse de la requête?

  • La liste est-elle statique ou dérivée à partir d'une requête?
  • Non, la liste de valeur pour la requête a été récupéré à partir de ressources externes. Est-il possible de résoudre ce problème, parce que ma liste est trop grande, peut contenir plus de 100000 articles
  • Donc, vous êtes en train de créer un énorme chaîne de requête contenant quelque chose comme DANS (...9997, 9998, 9999, 1000,1001 ...) ? En soi, cela va coûter beaucoup, de transmettre et d'analyser. Jamais l'esprit, l'injection sql possibilités.
InformationsquelleAutor | 2011-06-29