Frage : Datenbankentwurf und Indizes

Hallo wächst Kerle und Gals

If, das ich eine Tabelle in der Datenbank MSSQL2008 habe, die ungefähr 40 columns.
and + 1 Million Plusreihen, es enthält, durch ungefähr Reihen 30k pro day.

I Notwendigkeit, die Tabelle using einen Index über zwei Spalten zu fragen: das
ContactId INT NICHT UNGÜLTIG und das
JobNumber INT NICHT NULL

1) der Index sind leistungsfähiger, wenn die zwei Spalten ContactId und JobNumber physikalisch nahe bei einander in der Datenbanktabelle sind? das

2) die Zahl den neuen Kontakten gegeben, die täglich, ist es hinzugefügt werden, schneller, Indizes umzubauen, wenn die zwei Spalten physikalisch nah sind, oder es unterscheidet kein, wenn sie durch 30 getrennt werden oder mehr andere Spalten?

3), das ich annehme, dass Sie Indizes nur umbauen können, wenn Benutzer nicht Zugang die Daten sind, und wenn ja, dann die Indizes nach Produktionsstunden nur umgebaut werden können, ich werden folglich betroffen dem während der Tageszeit alle eben eingesetzten Aufzeichnungen effektiv, ist diese ein gültiges Interesse un-indexed sind?

Many Dank für Ihr help.

Antwort : Datenbankentwurf und Indizes

1) u. 2), da Felder nicht innerlich auf eine relevante Art der Position ich gespeichert werden, sagen, dass es keinen Unterschied zwischen der Position der Indexfelder in der Tabelle gibt. Jedoch neige ich, Indizes in die ersten Felder durch Versammlung einzusetzen.

3) Indizes umzubauen ist eine schwere Aufgabe, die eine negative Auswirkung in der Leistung Ihrer APP hat, also ist es eine gute Idee, Wiederaufbauen aus Produktionsstunden heraus zu starten. Die eben eingesetzten Reihen in Ihrem DB sind unter 3% jeden Tag, also verlieren Ihre searchs ein ungefähr 3% in der Leistung jeden Tag, bis Sie Ihre Indizes umbauen. Dieses ist nicht solch eine große Sache, wenn Sie sie in einer täglichen Basis umbauen.
Weitere Lösungen  
 
programming4us programming4us