Permalänk
Medlem

Indexera SQL-tabell

Hej!

Jag har på jobbet skapat ett nytt system som växt fram kan man säga. Det fungerar fint nu men jag tänkte hur är det bäst att man optimerar och indexerar tabeller.
Jag har en tabell som växer med ungefär 100.000 rader per månad. En ganska måttlig tabell.
I den har jag ett int som unikt index och som ökar med 1 för varje rad. En vanlig int har ju maxvärde på
2.147.483.647 vilket motsvarar 1789 år så den tabellen lär ju inte slå i taket där.

Räcker detta som ett index, har artikelnummer i tabellen som jag söker på ofta som är en helt vanlig varchar. artikelnumren kan förekomma flera gånger.
Frågan är då, hur kan jag optimera tabellen. Har 22 kolumner i tabellen med diverse datatyper.
Upplever inte tabellen som seg eller långsam på något vis.

Visa signatur

K#

Permalänk
Medlem

Du ska ha index på sakerna du söker på ofta, men märker du ingen prestanda skillnad så spelar det ju ingen roll?

Hur många ms tar en fråga som ställs ofta?

Permalänk
Medlem

Ja, har kollat upp lite tider och 20-50ms ser ut att vara vanliga returnerings-tider.
Värt att notera att jag inte kör på samma maskin.

Visa signatur

K#

Permalänk
Medlem

Ge oss tabelldefinationen samt exempelquerys. Det känns lite som du inte har någon som helst pejl på saker och ting ;/
Om artikelnummret är ett riktigt tal så bör du ju inte köra en varchar på det.

Permalänk
Medlem

Utan att veta vilken databas du använder:

En sak att tänka på är att för varje insert i tabellen kommer det gå åt tid till att uppdatera indexet. Så var sparsam med index.

Se över de lagrade procedurer som använder tabellen och gör index för just de som är långsamma. Gödsla inte med index. De som skapas automatiskt i MS SQL är rätt ok för vanligt bruk, men gör du många intensiva utsökningar med någon SP så är det läge att skapa ett nytt index som motsvarar vad SP söker på.

Visa signatur

Lill-server(2010): SFF NAS Zotac H55ITX-C-E, Lian Li PC-Q08B, Intel Core i3 540
Stor-server(2014): SuperMicro X10SL7-F, 20GB ECC RAM, 4x2TB WD Green, E3-1230v3, 2xIntel Dual Gigabit Nic