У меня есть база данных SQL 2005, которую я унаследовал, с таблицей, которая выросла примерно до 17 миллионов записей в течение примерно 15 лет, и теперь она ужасно медленная.Будет ли добавление кластерного индекса в существующую таблицу повысить производительность?
Компоновка таблица выглядит примерно так:
id_column = nvarchar(20),indexed, not unique
column2 = nvarchar(20), indexed, not unique
column3 = nvarchar(10), indexed, not unique
column4 = nvarchar(10), indexed, not unique
column5 = numeric(8,0), indexed, not unique
column6 = numeric(8,0), indexed, not unique
column7 = nvarchar(20), indexed, not unique
column8 = nvarchar(10), indexed, not unique
(и около 5 более колонн, которые выглядят почти так же, не индексируются)
Поле «Идентификатор» является значение, введенное в конечным пользователем.
Нет первичных ключей и нет столбцов, которые могут быть объединены, чтобы создать уникальную строку (если все столбцы не объединены). Таблица фактически представляет собой таблицу «детали» для другой таблицы, но нет ограничений, обеспечивающих ссылочную целостность.
Каждый столбец сильно используется в предложениях «где» в запросах, поэтому я предполагаю, что на каждом из них есть индекс или, возможно, отчаянная попытка ускорить работу другого администратора базы данных.
Сказав все это, мой вопрос: мог ли добавить кластеризованный индекс сделать мне что-нибудь полезное на данный момент?
Если бы я добавил кластерный индекс, я предполагаю, что это должен был быть новый столбец, т. Е. Столбец идентичности? В принципе, это стоит того?
Цените любой совет.
может принадлежать http://dba.stackexchange.com –
Есть ли у вас какие-либо статистические данные о том, что выполняются запросы, то есть, какие столбцы являются наиболее важными? У меня возникнет соблазн уменьшить количество индексов и использовать включенные столбцы для тех, которые остаются для таргетинга на наиболее частые дискриминаторы строк. – tvanfosson