Как я могу ускорить это Индексное представление?

Чтобы использовать wrap_content или match_parent, вам необходимо создать следующие элементы в файле измерения.xml:

<item name="match_parent" format="integer" type="dimen">-1</item>
<item name="wrap_content" format="integer" type="dimen">-2</item>

Тогда вы можете просто использовать его следующим образом:

<dimen name="layout_height">@dimen/match_parent</dimen>
<dimen name="layout_width">@dimen/wrap_content</dimen>
12
задан Spooky 19 June 2015 в 20:58
поделиться

6 ответов

What edition of SQL Server? I believe that only Enterprise and Developer Edition will use indexed views automatically, while the others support it using query hints.

SELECT a.PostId
FROM PostsCleanSubjectView a WITH (NOEXPAND)
WHERE a.CleanedSubject = 'Just-out-of-town' AND a.PostTypeId = 1

From Query Hints (Transact SQL) on MSDN:

The indexed view is not expanded only if the view is directly referenced in the SELECT part of the query and WITH (NOEXPAND) or WITH (NOEXPAND, INDEX( index_value [ ,...n ] ) ) is specified.

18
ответ дан 2 December 2019 в 07:03
поделиться

What benefit are you looking for by using an indexed view? Is it not possible to properly index the table(s) themselves? Without good justification, you're adding complexity and asking the optimizer to deal with more database objects with less flexibility.

Have you evaluated the same query logic with standard indexes?

Mixing in UDF logic muddies things even more.

0
ответ дан 2 December 2019 в 07:03
поделиться

If all you want is to persist the return value of a UDF, consider a persisted computed column rather than an indexed view.

0
ответ дан 2 December 2019 в 07:03
поделиться

Недавно я создал большую базу данных, содержащую сотни миллионов записей о вызовах, и некоторые функции, которые я использовал в запросах и представлениях, я превратил в постоянные вычисляемые столбцы. Это сработало намного лучше, потому что я мог индексировать вычисляемый столбец.

Я не использовал SQL Enterprise, поэтому у меня не было возможности использовать индексированные представления. Может ли индексированное представление индексировать детерминированные результаты UDF?

0
ответ дан 2 December 2019 в 07:03
поделиться

I suspect it has to call that function for every row before it can do the comparison in your where clause. I'd expose subject, run the query checking against that directly and see how the times work out. I've generally seen a lot of slowness whenever I modify a value using a function and then use it in the where clause...

0
ответ дан 2 December 2019 в 07:03
поделиться

Я вижу знак @ в коде запроса в вашем плане выполнения. Здесь задействована строковая переменная.

Sql Server ведет себя ГЛОБАЛЬНО, если тип строковой переменной не соответствует типу строкового столбца в индексе. Sql Server ... преобразует весь столбец в этот тип, выполнит быстрый поиск, а затем выбросит преобразованный индекс, чтобы он мог сделать все это снова в следующем запросе.


Саймон понял это - но вот более полезная деталь: http://msdn.microsoft.com/en-us/library/ms187373.aspx

Если запрос содержит ссылки на столбцы, которые присутствуют как в индексированном представлении, так и в базовых таблицах , и оптимизатор запросов определяет, что использование индексированного представления обеспечивает лучший метод для выполнения запроса, оптимизатор запросов использует индекс для представления. Эта функция называется сопоставлением индексированных представлений и поддерживается только в выпусках SQL Server Enterprise и Developer.

Однако оптимизатор должен учитывать индексированные представления для сопоставления или использовать индексированное представление, на которое ссылается подсказки NOEXPAND, следующие параметры SET должны быть установлены в положение ON:

Итак, здесь происходит то, что сопоставление индексированных представлений не работает. Убедитесь, что вы используете версии Sql Server Enterprise или Developer (скорее всего). Затем проверьте свои параметры SET согласно статье.

следующие параметры SET должны быть установлены в положение ON:

Итак, здесь происходит то, что сопоставление индексированных представлений не работает. Убедитесь, что вы используете версии Sql Server Enterprise или Developer (скорее всего). Затем проверьте свои параметры SET согласно статье.

следующие параметры SET должны быть установлены в положение ON:

Итак, здесь происходит то, что сопоставление индексированных представлений не работает. Убедитесь, что вы используете версии Sql Server Enterprise или Developer (скорее всего). Затем проверьте свои параметры SET согласно статье.

4
ответ дан 2 December 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: