MSSQL traag


#1

Ik heb de output van foondump naar MSSQL database geschreven.
Daar alles in 1 tabel plaatsen mij de performance niet ten goede leek komen, heb ik het geheel gesplitst in de tabellen Abonnee, Adresgegevens en Telefoonnummer.
Na een aantal uurtjes ratelen stond alles erin, maar een query op alleen een achternaam neemt ongeveer 1,5 minuut in beslag (zonder INNERs, alleen achternaam). MySql deed dit in enkele seconden.

Is er iets mis met mijn aanpak? (Anti-Microsoft nou niet meteen gaan flamen ) Iemand anders dit probleem ook tegengekomen?

Groet!


#2

Hoi Sjaakie,

Performance van een (MSSQL) database heeft veel te maken met goed databaseontwerp, keys en indexen op velden.

De vriendelijke groet Jan Marco


#3

[quote=“Sjaakie”]Ik heb de output van foondump naar MSSQL database geschreven.
Daar alles in 1 tabel plaatsen mij de performance niet ten goede leek komen, heb ik het geheel gesplitst in de tabellen Abonnee, Adresgegevens en Telefoonnummer.
Na een aantal uurtjes ratelen stond alles erin, maar een query op alleen een achternaam neemt ongeveer 1,5 minuut in beslag (zonder INNERs, alleen achternaam). MySql deed dit in enkele seconden.

Is er iets mis met mijn aanpak? (Anti-Microsoft nou niet meteen gaan flamen ) Iemand anders dit probleem ook tegengekomen?

Groet![/quote]

Ik zou zeggen probeer eens een tabel in MSSQL te maken die de MySQL tabel definitie zo precies mogelijk volgt. De MySQL definitie is vrij optimaal voor zover ik weet. Het splitsen in afzonderlijke tabellen zal eerder snelheidsverlies dan winst opleveren. Zeker aangezien je alleen uit de database leest en niet schrijft. Gezien het grote verschil in tijd tussen de queries lijkt me dat je in MSSQL de index op de achternaam bent vergeten aangezien je nog geen tabel join doet.


#4

Als je indexen aanmaakt op de verschillende velden gaat het wel goed.