sql >> Database >  >> RDS >> Sqlserver

Schadelijke, alomtegenwoordige mythes over SQL Server-prestaties

Tussen mijn reizen, presentaties en Q &A-moderatie door, praat ik met veel mensen over een breed scala aan prestatieproblemen met SQL Server. Onlangs heb ik een paar interacties gehad waarbij mensen dingen geloven die ofwel helemaal onjuist zijn, of alleen correct zijn in een zeer beperkt aantal gebruiksgevallen. Maar hun stelligheid dat deze dingen universeel waar zijn, is verontrustend.

Dus ik dacht dat ik een nieuwe serie zou beginnen om een ​​aantal van deze mythen te onderdrukken. Niet om mensen aan te wijzen en te bewijzen dat ze ongelijk hebben, maar om de verspreiding tegen te gaan. Wanneer ze deze algemene uitspraken doen op hun werkplek, of op Twitter, of op forums, kunnen ze, als ze niet worden aangevinkt, ontvankelijke of minder ervaren gebruikers 'leren'.

Merk op dat ik niet van plan ben te bewijzen dat deze dingen nooit . zijn waar, omdat sommige zeker waar kunnen zijn in geïsoleerde of gekunstelde scenario's . Mijn doel is eenvoudig om ten minste één geval aan te tonen waarin het niet waar is; hopelijk kan dit deze koppige denkwijze veranderen.

Hier zijn enkele van de "feiten" die mij onlangs zijn verteld, in willekeurige volgorde:

  • "Een geclusterde index is altijd beter dan een niet-geclusterde index"
  • "Dynamische SQL maakte mijn zoekopdracht traag"
  • "PIVOT is sneller dan SUM(CASE)"
  • "NULL's veroorzaken altijd verschrikkelijke prestatieproblemen"
  • "Uitvoeringsplannen zijn nutteloos, behalve voor ontbrekende indexen"
  • "NOLOCK is oké omdat veel mensen het gebruiken"
  • "Overdimensionering van varchar/nvarchar-kolommen is oké"

Terwijl ik elk bericht schrijf, zal ik deze pagina bijwerken door het corresponderende item in de bovenstaande lijst te linken.

Heb je fabels over prestaties die als absoluut feit worden doorgegeven, maar je vermoedt (of weet misschien zelfs) dat ze niet altijd waar zijn? Laat het me weten in de reacties hieronder, op Twitter of op [email protected].


  1. Hoe kan ik de inhoud van een orakeltabel naar een bestand exporteren?

  2. Inleiding tot IRI Voracity (Total Data Management) [video]

  3. Functie wordt sneller uitgevoerd zonder STRIKTE modifier?

  4. Ik kan mijn aanmeldingsformulier niet krijgen om verbinding te maken met de mySQL-database om correct te communiceren