web-dev-qa-db-fra.com

Quand les indices non clusterés doivent-ils être stockés sur des groupes de fichiers séparés?

J'ai entendu dire que l'enregistrement d'index sur un groupe de fichiers différent et un lecteur augmente les performances dans une base de données car le lecteur n'a pas à aller de retour entre l'index et les données auxquelles l'index fait référence. J'ai aussi entend que c'est un mythe.

Quand est-il conseillé de stocker des index non clusters sur un groupe de fichiers séparé? Quelles preuves Perfmon/Profiler me conduiraient à arriver à cette conclusion? Le matériel joue-t-il un rôle dans la décision (si un RAID/SAN est utilisé sur un seul lecteur)?

16
Michael Hedgpeth

La partie la plus lente d'un système DB est les lecteurs de disque. L'élimination des goulots d'étranglement au niveau du disque améliorera les performances. Lorsque des données sont en cours de recherche et qu'un index est utilisé, l'index est d'abord recherché, puis les données correspondantes sont récupérées. Si l'indice et les données sont à la fois sur les mêmes disques, il y a une certaine contention. Tandis que, si les données étaient sur un disque différent (physique), il y a plus vite IO survenue, augmentant ainsi les performances. La partie principale à noter est que les données ou l'index sont sur des disques physiques distincts ou des lunes.

Vous utiliseriez un tel scénario si vous devez obtenir une meilleure performance hors de votre système, à condition que vous ayez les disques. Pour vos compteurs de parfum, vous pouvez utiliser Physical Disk – Avg. Disk sec/Read, Physical Disk – Avg. Disk sec/Write, Physical Disk – Disk Reads/sec, Physical Disk – Disk Writes/sec Avoir une comparaison avant et après vos modifications.

10
StanleyJohns

En général; Données et index de division sur disques distincts des disques de performance peuvent augmenter les performances des opérations d'écriture substantielles à cette table ou à de grandes opérations de lecture qui utilisent cet index. Une méthodologie similaire à certaines autres opérations d'E/S, comme une table partitionnée répartie sur plusieurs disques physiques.

Cependant, il est également en largement dépendant du stockage. Par exemple; Si vous avez un serveur avec une belle amusement iodrive (ou quelque chose de similaire) et possède également des disques de filature individuels. Cela pourrait plus bénéfique de tout garder sur l'iodrive (sauf si l'espace n'est limité). Il existe également d'autres choses à prendre en compte - configuration RAID, configuration de stockage de réseau.

Faites un marquage bancaire soit sur un serveur de test avec du matériel similaire, soit (uniquement si un serveur secondaire n'est pas une option) pendant les heures de pointe avec des données temporaires. Le lien DBA-singe par Sankar ci-dessus est une bonne nourriture pour la pensée.

1
GP Van Eron