Mezi svými cestami, prezentacemi a moderováním otázek a odpovědí mluvím s mnoha lidmi o široké škále problémů s výkonem SQL Serveru. Nedávno jsem měl několik interakcí, kdy lidé věřili věcem, které jsou buď zcela nesprávné, nebo jsou správné pouze ve velmi úzké množině případů použití. Přesto je jejich přesvědčení, že tyto věci jsou všeobecně pravdivé, znepokojivé.
A tak jsem si řekl, že začnu novou sérii, abych pomohl vyvrátit některé z těchto mýtů. Ne ukazovat na lidi a dokazovat, že se mýlí, ale zastavit šíření. Když učiní tato paušální prohlášení na svém pracovišti, na twitteru nebo na fórech, pokud zůstanou bez kontroly, mohou „učit“ ovlivnitelné nebo méně zkušené uživatele.
Všimněte si, že nemám v úmyslu dokazovat, že tyto věci nejsou nikdy pravda, protože některé mohou být jistě pravdivé v izolovaných nebo vykonstruovaných scénářích . Mým cílem je jednoduše demonstrovat alespoň jeden případ, kdy to není pravda; doufejme, že to může začít měnit tyto tvrdohlavé myšlení.
Zde jsou některá z „faktů“, která mi nedávno byla sdělena, v žádném konkrétním pořadí:
- „Shlukovaný index je vždy lepší než index bez seskupení“
- "Dynamické SQL zpomalilo můj dotaz"
- "PIVOT je rychlejší než SUM(CASE)"
- "Hodnoty NULL vždy způsobují hrozné problémy s výkonem"
- "Plány provádění jsou k ničemu kromě chybějících indexů"
- "NOLOCK je v pořádku, protože ho používá mnoho lidí"
- "Předměrování sloupců varchar/nvarchar je v pořádku"
Jak budu psát každý příspěvek, aktualizuji tuto stránku propojením odpovídající položky ve výše uvedeném seznamu.
Máte nějaké mýty o výkonu, které jsou předávány jako absolutní fakt, ale máte podezření (nebo možná dokonce víte), že nejsou vždy pravdivé? Dejte mi vědět v komentářích níže, na twitteru nebo na [email protected].