SQL Server 2008 R2 Создать индекс - PullRequest
4 голосов
/ 11 января 2012

Теперь я ищу вашу помощь для создания индекса по ним.

Теперь это моя структура таблицы

table description screen cap

Это запрос, мне нужен индекс для максимальной производительности.

select PageId 
    from tblPages 
    where UrlChecksumCode = @UrlChecksumCode 
        and PageUrl = @PageUrl

Теперь мне очень плохо с индексами. Я планирую так, что когда запрос выполняется, он сначала обнаружит, что UrlChecksumCode строк, а затем просмотреть столбцы Pageurl. Если вы также объясните мне, почему сделать такой индекс, я действительно ценю это. Спасибо.

Ответы [ 5 ]

10 голосов
/ 11 января 2012

в одну сторону, так как ваш pageURL длинный (nvarchar (1000) и индекс может быть только 900 байтов, если вы не используете включенные столбцы, я создал этот индекс с включенными столбцами

create index ix_IndexName on tblPages (UrlChecksumCode) INCLUDE(PageUrl)

или

create index ix_IndexName on tblPages (UrlChecksumCode) INCLUDE(PageUrl, PageID)

См. Также Покрывающие индексы SQL Server

почему URL nvarchar вместо varchar ... могут ли они быть Unicode? Еслине делайте это varchar и сохраняйте 1/2 размера

1 голос
/ 21 августа 2014

Создание некластеризованных индексов

       create nonclustered index indexname on tablename(columnname)

Удаление индекса

       Drop Index index name on tablename

Просмотреть все индексы в базе данных

       select * from sys.indexes
0 голосов
/ 30 октября 2018

Если вы хотите создать кластер, вы можете использовать это,

CREATE CLUSTERED INDEX IX_IndexName ON tblPages (UrlChecksumCode) INCLUDE(PageUrl)

Следующий запрос возвращает индексы, созданные в вашей таблице.

EXECUTE sp_helpindex tablename

Краткое введениедля кластерной индексации: -

Кластерный индекс определяет порядок, в котором данные физически хранятся в таблице.Табличные данные могут быть отсортированы только одним способом, поэтому в таблице может быть только один кластеризованный индекс.В SQL Server ограничение первичного ключа автоматически создает кластеризованный индекс для этого конкретного столбца.или вы можете создать собственный индекс кластера, удаляя индекс кластера по умолчанию, который создается первичным ключом.

0 голосов
/ 19 декабря 2016

я думаю, что даже мы можем использовать кластеризованный индекс для быстрого поиска, например создать кластеризованный индекс someName для tableName (columnName1, columnName2, ......), но для вкладки мы можем создать только один кластеризованный индекс

0 голосов
/ 11 января 2012

Вы, вероятно, хотите, чтобы индекс превышал (UrlChecksumCode and PageUrl), потому что это то, что он выбирает.

Хотя при некоторых шаблонах данных вы могли бы иметь более высокую производительность, если просто индексировать (UrlChecksumCode), поскольку для PageUrl потребуется больший текстовый индекс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...