Советы по работе с MS SQL Server
01.06.2001
Устанавливайте SET NOCOUNT ON.
При установке OFF после каждого оператора сервер посылает клиенту сообщение DONE_IN_PROC с количеством обработанных записей. Запретив это, Вы кардинально сократите сетевой трафик и существенно увеличите производительность.
При необходимости изменить режим блокирования какой-либо таблицы без изменения уровня изоляции транзакций используйте подсказки режима блокирования. Например, в следующем примере оператор SELECT накладывает на запись, предотвращая изменение её другими сессиями до окончания транзакции, несмотря на то, что установленный уровень изоляции не предусматривает этого:
SET TRANSACTION ISOLATION LEVEL READ COMMITED BEGIN TRANSACTION SELECT * FROM City WHERE Name = 'Ленинград' WITH (HOLDLOCK) -- Какие-то операторы, во время их выполнения -- запись остается заблокированной UPDATE City SET Name = 'Санкт-Петербург' WHERE Name = 'Ленинград' COMMITЯвно указывайте параметры в запросах.
Это поможет серверу более эффективно кэшировать планы выполнения. При динамическом формировании текста запроса не подставляйте параметры в текст, а используйте хранимую процедуру sp_executesql
Не начинайте названия своих хранимых процедур с префикса «sp_».
Сервер ищет процедуры с такими именами в первую очередь в базе данных Master, а затем уже в текущей БД. Это приводит к дополнительным накладным расходам.
Если Ваше приложение интенсивно использует базу данных tempdb (например, создает много временных таблиц) - увеличьте её минимальный размер. В противном случае при старте сервера создается tempdb малого размера, которая затем динамически расширяется, непроизводительно загружая компьютер.

