Организация индексов в SQL Server 2005 Страница 3. Установим себе предел
|
Страница 3 из 3 Установим себе пределКак я уже упоминала, функция sys.dm_db_index_physical_stats () может возвращать большее количество строк, если пользователь вводит все заданные по умолчанию параметры. Но даже осторожное использование доступных параметров для подмножества таблиц или индексов может вернуть больше, чем требуется, количество данных. Поскольку sys.dm_db_index_physical_stats () — это функция типа TVF, можно накладывать на возвращаемые данные собственные фильтры. Например, пользователь может видеть результаты только для некластеризованных индексов. Пользуясь доступными параметрами, пользователь выбирает, нужно ему видеть все индексы или только один. Если в третьем параметре используется NULL для указания всех индексов, можно добавить фильтр в операторе WHERE для выбора только тех строк, где значение index_id находится между значениями 2 и 250. Или можно просматривать только те строки, которые указывают на высокую степень фрагментации. Листинг. Проверка идентификаторов базы данных и объекта до вызова функцииDECLARE @db_id smallint; DECLARE @object_id int;
SET @db_id = DB_ID(N’AdventureWorks’); SET @object_id = OBJECT_ID(N’AdventureWorks .Person.Address’); IF @db_id IS NULL BEGIN; PRINT N’Invalid database’; END; ELSE IF @object_id IS NULL BEGIN; PRINT N’Invalid object’; END; SELECT * FROM sys.dm_db_index_physical_stats (@db_id, @object_id, NULL, NULL, NULL) |