четверг, 7 февраля 2013 г.

выполнение процедур в ms sql

CREATE NONCLUSTERED INDEX CL_perf_test ON sp_perf_test(column1)

ШАГ 4. Создание некластерного индекса. Поскольку план выполнения кэшируется вместе с процедурой, индекс будет при всех вызовах использоваться одинаково.

SELECT COUNT(*) FROM sp_perf_test

INSERT INTO sp_perf_test(column1, column2) VALUES(50000,'Test string #'+CAST(@i as char(8)))

INSERT INTO sp_perf_test(column1, column2) VALUES(@i,'Test string #'+CAST(@i as char(8)))

ШАГ 3. Заполнение таблицы тестовыми строками. В таблицу намеренно добавляются дублирующиеся строки. 10000 строк с номерами от 1 до 10000, и 10000 строк с номерами 50000.

CREATE TABLE sp_perf_test(column1 int, column2 char(5000))

ШАГ 2. Создание таблицы.

LOG ON (NAME='test_log', FILENAME='c:\temp\test_log', SIZE=1, MAXSIZE=10,FILEGROWTH=1Mb)

ON (NAME='test_data', FILENAME='c:\temp\test_data', SIZE=1, MAXSIZE=10,FILEGROWTH=1Mb)

Для эксперимента создадим отдельную базу данных.

ШАГ 1. Создание БД.

Проведет небольшой эксперимент, чтобы продемонстрировать это.

Дело в том, что при компиляции хранимой процедуры компилируется план выполнения тех операторов, которые составляют код процедуры, соответственно, если откомпилированная хранимая процедура кэшируется, то кэшируется и ее план выполнения, а следовательно, хранимая процедура не будет оптимизироваться под конкретную ситуацию и параметры запросов.

С другой стороны в хранении откомпилированного кода хранимой процедуры кроются подводные камни, которые могут иметь обратный эффект.

При компиляции хранимых процедур в MS SQL Server 2000 хранимые процедуры помещаются в процедурный кэш, что может способствовать увеличению производительности при их выполнении за счет исключения необходимости в синтаксическом разборе, оптимизации и компиляции кода хранимых процедур.

Руслан Разбежкин

Производительность хранимых процедур MS SQL Server 2000

Advertising: frico 12 квт Реализуем красивое по хорошим ценам

РУССКИЕ ДОКУМЕНТЫ :: Производительность хранимых процедур MS SQL Server 2000

Комментариев нет:

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