Между моите пътувания, презентации и модериране на въпроси и отговори, говоря с много хора за голямо разнообразие от проблеми с производителността на SQL Server. Напоследък имах няколко взаимодействия, при които хората вярват в неща, които са или напълно неправилни, или са правилни само в много тесен набор от случаи на употреба. Въпреки това тяхната твърдост, че тези неща са универсално верни, е обезпокоителна.
Така че реших, че ще започна нова серия, за да помогна за потушаването на някои от тези митове. Не за да сочат хората и да докажат, че грешат, а за да спрем разпространението. Когато правят тези общи изявления на работното си място, или в Twitter, или във форуми, ако не бъдат проверени, те могат да „научат“ впечатляващи или по-малко опитни потребители.
Имайте предвид, че не възнамерявам да доказвам, че тези неща никога вярно, защото някои със сигурност могат да бъдат верни в изолирани или измислени сценарии . Целта ми е просто да демонстрирам поне един случай, в който не е вярно; да се надяваме, че това може да започне да променя тези упорити начини на мислене.
Ето някои от "фактите", които ми казаха наскоро, без определен ред:
- „Клъстериран индекс винаги е по-добър от неклъстериран индекс“
- „Динамичният SQL направи заявката ми бавна“
- „PIVOT е по-бърз от SUM(CASE)“
- „NULL винаги причиняват ужасни проблеми с производителността“
- „Плановете за изпълнение са безполезни, освен за липсващи индекси“
- „NOLOCK е добре, защото много хора го използват“
- „Преоразмеряването на колоните varchar/nvarchar е наред“
Докато пиша всяка публикация, ще актуализирам тази страница, като свържа съответния елемент в списъка по-горе.
Имате ли някакви митове за представяне, които се разпространяват като абсолютен факт, но подозирате (или може би дори знаете), че те не винаги са верни? Кажете ми в коментарите по-долу, в Twitter или на [email protected].