Вопросы производительности широких таблиц
Широкая таблица — это таблица с набором столбцов. При использовании широких таблиц следует учитывать следующие вопросы производительности.
В широких таблицах может быть определено до 30 000 столбцов. Это увеличивает затраты на обслуживание индексов для таблицы. Определяемые некластеризованные индексы должны быть отфильтрованными индексами, применяющимися к подмножествам данных. Дополнительные сведения см. в разделе Рекомендации по проектированию отфильтрованных индексов.
Приложения могут динамически добавлять или удалять столбцы из широких таблиц. При добавлении или удалении столбцов скомпилированные планы запросов также становятся недействительными. Рекомендуется разрабатывать приложение с учетом предполагаемой рабочей нагрузки, чтобы изменения в схеме были сведены к минимуму.
Добавление или удаление данных из широкой таблицы может влиять на производительность. Приложения следует разрабатывать с учетом предполагаемой рабочей нагрузки, чтобы изменения в схеме были сведены к минимуму.
Рекомендуется ограничить количество индексов широкой таблицы только теми, которые необходимы для бизнес-логики. С ростом числа индексов возрастает время компиляции DML и требования к памяти.
В широкой таблице следует ограничить выполнение инструкций DML, обновляющих несколько строк ключа кластеризации. Для компиляции и выполнения этих инструкций может потребоваться значительный объем ресурсов.
Операции по переключению секций в широких таблицах могут выполняться медленно. Для их выполнения может потребоваться значительный объем памяти. Требования к производительности и памяти пропорциональны общему количеству столбцов в исходной и целевой секциях.
Курсоры обновления, обновляющие определенные столбцы в широкой таблице, должны явно перечислять столбцы в предложении FOR UPDATE. Это поможет оптимизировать производительность при использовании курсоров.
См. также