Si je comprends bien, l'optimiseur de requêtes dans SQL Server (ou tout autre SGBDR, vraiment) n'est pas au courant des performances du stockage sous la base de données et prendra des décisions comme si tout le stockage avait un coût égal. Est-ce exact ou existe-t-il une connaissance des performances de stockage prise en compte?
Dans un exemple totalement artificiel, disons que mes lignes de table sont stockées sur un disque SSD dans mon SAN avec des temps d'accès instantanés, où mes index sont stockés sur des disques SAS qui sont extrêmement surchargés, ce qui entraîne une saturation du disque et des files d'attente de disque constantes. Lorsque le SGBDR génère le plan d'exécution, est-il plus susceptible de favoriser une analyse de table qu'une opération d'index (ou éventuellement un index skinny et des recherches de table associées, par opposition à un index de couverture, car c'est moins d'E / S sur les disques SAS)?
Je soupçonne que la réponse est solide: "il n'y a aucune chance que l'optimiseur soit intelligent ou même conscient des performances du disque", mais je voulais juste voir si quelqu'un le savait avec certitude. J'utilise SQL Server, mais je suis intéressé par tout système de base de données.