Вопросы с тегом «filtered-index»

5
Как создать условный индекс в MySQL?
Как создать индекс для фильтрации определенного диапазона или подмножества таблицы в MySQL? AFAIK невозможно создать напрямую, но я думаю, что можно смоделировать эту функцию. Пример: я хочу создать индекс для NAMEстолбца только для строк сSTATUS = 'ACTIVE' Эта функциональность будет называться фильтрованным индексом в SQL Server и частичным индексом в …

5
Невозможно создать отфильтрованный индекс для вычисляемого столбца
В моем предыдущем вопросе, это хорошая идея, чтобы отключить эскалацию блокировки при добавлении новых вычисляемых столбцов в таблицу? Я создаю вычисляемый столбец: ALTER TABLE dbo.tblBGiftVoucherItem ADD isUsGift AS CAST ( ISNULL( CASE WHEN sintMarketID = 2 AND strType = 'CARD' AND strTier1 LIKE 'GG%' THEN 1 ELSE 0 END , …

2
Почему отфильтрованный индекс по значению IS NULL не используется?
Предположим, у нас есть определение таблицы следующим образом: CREATE TABLE MyTab ( ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY ,GroupByColumn NVARCHAR(10) NOT NULL ,WhereColumn DATETIME NULL ) И отфильтрованный некластеризованный индекс, подобный этому: CREATE NONCLUSTERED INDEX IX_MyTab_GroupByColumn ON MyTab (GroupByColumn) WHERE (WhereColumn IS NULL) Почему этот индекс не «покрывает» этот …

1
Почему оператор агрегирования используется после сканирования уникального индекса
У меня есть таблица с уникальным индексом, отфильтрованным для ненулевых значений. В плане запроса есть использование различных. Есть причина для этого? USE tempdb CREATE TABLE T1( Id INT NOT NULL IDENTITY PRIMARY KEY ,F1 INT , F2 INT ) go CREATE UNIQUE NONCLUSTERED INDEX UK_T1 ON T1 (F1,F2) WHERE F1 …

3
Улучшить производительность запроса с помощью IN ()
У меня есть следующий запрос SQL: SELECT Event.ID, Event.IATA, Device.Name, EventType.Description, Event.Data1, Event.Data2 Event.PLCTimeStamp, Event.EventTypeID FROM Event INNER JOIN EventType ON EventType.ID = Event.EventTypeID INNER JOIN Device ON Device.ID = Event.DeviceID WHERE Event.EventTypeID IN (3, 30, 40, 41, 42, 46, 49, 50) AND Event.PLCTimeStamp BETWEEN '2011-01-28' AND '2011-01-29' AND Event.IATA …

3
Используйте функцию «LEN» в предложении «WHERE» в «CREATE UNIQUE INDEX»
У меня есть эта таблица: CREATE TABLE Table01 (column01 nvarchar(100)); И я хочу создать уникальный индекс для column01 с этим условием LEN (column01)> = 5 Я старался: CREATE UNIQUE INDEX UIX_01 ON Table01(column01) WHERE LEN(column01) >= 5; Я получил: Неверное предложение WHERE для отфильтрованного индекса 'UIX_01' в таблице 'Table01'. И …

3
Включенный столбец против отфильтрованного индекса
В настоящее время мы работаем с таблицей с именем tb_tranfers . Эта таблица имеет 40 миллионов строк и имеет размер ~ 26 ГБ (данные 11 ГБ, индексы 15 ГБ). От 10 до 15% строк - это строки с мягким удалением ( DeletedDate не является нулевым). Приложение использует только те строки, …

3
Отфильтрованный индекс используется только тогда, когда отфильтрованная часть находится в СОЕДИНЕНИИ, а не ГДЕ
Я создал отфильтрованный индекс ниже, однако, когда я запускаю 2 запроса дальше вниз, этот индекс используется только для поиска в первом примере, который имеет END_DTTM в JOIN, а не в предложении where (это единственная разница в запросах) , Кто-нибудь может объяснить, почему это происходит? Создание индекса CREATE NONCLUSTERED INDEX [ix_PATIENT_LIST_BESPOKE_LIST_ID_includes] …

2
Каково влияние замены индексов на отфильтрованные (не нулевые значения) индексы?
Наш проект работает с очень большой, очень сложной базой данных. Примерно месяц назад мы заметили, что пространство, используемое индексированными столбцами, содержащими нулевые значения, становится слишком большим. В ответ на это я написал в виде сценария, который будет динамически выполнять поиск по всем одноколоночным индексам, содержащим более 1% нулевых значений, а …

2
Есть ли обходной путь, когда вы хотите поместить ИЛИ в фильтруемый индекс?
Есть ли обходной путь, когда вы хотите поместить ИЛИ в фильтруемый индекс? create index FIDX_tblbOrders_sdtmOrdCreated_INCL on dbo.tblBOrder(sdtmOrdCreated) INCLUDE (sintMarketID, strCurrencyCode, sintOrderStatusID ) WHERE ((sintMarketId=1) AND ( (sintOrderStatusId < 9) OR (sintOrderStatusId > 14))) Я пытаюсь создать индекс выше, потому что меня НЕ интересует ситуация, в которой sintOrderStatusId IN (9-14) Конечно, …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.