Comment les valeurs NULL affecter les performances d'une base de données de recherche?

Dans notre produit nous avons un générique du moteur de recherche, et en essayant de optimze la recherche de la performance. Beaucoup de tableaux utilisés dans les requêtes autoriser les valeurs null. Devons-nous repenser notre table pour interdire les valeurs null pour l'optimisation ou pas?

Notre produit fonctionne sur les deux Oracle et MS SQL Server.

  • Jakob, ce genre de performance sont les problèmes rencontrés avec les valeurs Null ?
  • bien aucun problème jusqu'à présent. Mais je me souviens, j'ai lu un article quelque chose à propos de la baisse des performances lors de l'utilisation de valeurs null. Donc, la discussion a commencé dans notre équipe, si l'on doit autoriser les valeurs null ou n'est pas - et nous ne sommes pas venus pour tout conslusion encore. Nous avons quelques très huges tables avec des millions de lignes et beaucoup de clients, donc c'est un assez gros changement pour le projet. Mais les clients soulevé une question au sujet de la performance dans le moteur de recherche.
  • SI vous avez des problèmes avec la performance dans les moteurs de recherche, je regarde beaucoup d'autres endroits avant d'éliminer les valeurs null. Démarrer avec l'indexation, Regardez les plans d'exécution pour voir ce qui se passe réellement. Vous regarder où l'une des clauses pour voir si elles sont sargeable. Regardez ce que vous êtes de retour, avez-vous utiliser select * (mauvais pour la performance si vous avez une jointure comme un champ au moins est répété ainsi wating création d'un réseau de ressources), avez-vous l'utilisation de sous-requêtes au lieu de jointures? Avez-vous utiliser un curseur? Est la clause where suffisamment d'exclusivité? Avez-vous utilisez un caractère générique pour le premier caractère? Et sur et sur et sur.