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

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

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...