Советы по работе с MS SQL Server

Previous  Top  Next

    
 

 

Устанавливайте SET NOCOUNT ON. При установке OFF после каждого оператора сервер посылает клиенту сообщение DONE_IN_PROC с количеством обработанных записей. Запретив это, Вы кардинально сократите сетевой трафик и существенно увеличите производительность.
При необходимости изменить режим блокирования какой-либо таблицы без изменения уровня изоляции транзакций используйте подсказки режима блокирования. Например, в следующем примере оператор SELECT накладывает на запись, предотвращая изменение её другими сессиями до окончания транзакции, несмотря на то, что установленный уровень изоляции не предусматривает этого:

 

Code:

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 малого размера, которая затем динамически расширяется, непроизводительно загружая компьютер.