dinesh42 Ответов: 1

Как сделать выберите быстрее бегать на таблицу с 120 колонн


У меня есть оператор select, в котором три таблицы соединяются внутри, и в одной из таблиц есть 120 столбцов, и почти все столбцы возвращаются в операторе select из этой большой таблицы. План выполнения показывает кластеризованный поиск индекса только для всех таблиц. Ищу любые готовые идеи, чтобы сделать работу select более быстрой.

Что я уже пробовал:

Я применил сжатие страниц для большой таблицы, и это дало улучшение на 10 секунд, но все же я хочу настроить его дальше.

F-ES Sitecore

- Это зависит от обстоятельств. Является ли запрос медленным, потому что эти 120 столбцов содержат огромное количество текста? Или запрос выполняется медленно, потому что количество запрашиваемых строк и количество столбцов не имеют значения? Является ли запрос медленным, потому что вы возвращаете много строк? У каждого из них есть свои причины и решения, нет волшебной пули, которая делает запросы быстрее, некоторые из этих проблем не имеют реального решения, кроме как использовать более быстрый сервер. Вы должны сначала определить причину горлышка бутылки, прежде чем вы можете решить эту проблему. Google для ускорения sql - запросов, чтобы получить представление об основах.

Maciej Los

Звучит как ответ ;)

Dave Kreskowiak

Большая часть производительности будет зависеть от дизайна таблиц и того, что вы делаете в запросе. Мы ничего не можем сказать вам об этом, потому что вы не описали ничего из этого и не показали реальный запрос, который работает плохо.

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

1 Ответов

Рейтинг:
1

RickZeeland

Вы могли бы попробовать Создание отфильтрованных индексов - SQL Server | Microsoft Docs[^]
однако это будет полезно только в том случае, если столбцы имеют только небольшое количество релевантных значений для запросов.
Также убедитесь, что ваши индексы поддерживаются, вот хороший инструмент для этого: бесплатные инструменты для SQL-сервера~в SQL-индекс-менеджер[^]

Если этого все еще недостаточно, вы можете подумать об использовании более производительной базы данных, см. Этот обзор: реляционная база данных[^]