Замедленная таблица SQL Server 2008, секционирование таблиц

StackOverflow https://stackoverflow.com/questions/816395

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть таблица, которая выросла до 1 миллиона записей ... сегодня (все действительные)

Мне нужно ускорить это ... будет ли разделение таблицы ответом? Если да, могу ли я получить некоторую помощь по созданию запроса?

Таблица имеет 4 ключа значения bigint, и все это с индексированным первичным ключом и индексом desc для идентификатора пользователя, остальные значения макс. 139 (сейчас число пользователей превышает 10 000)

Любая помощь или направление будут оценены:)

Это было полезно?

Решение

Вам, вероятно, просто нужно настроить свои запросы и / или индексы. 1 миллион записей не должен вызывать у вас проблем. У меня есть таблица с несколькими сотнями миллионов записей & amp; способен поддерживать довольно высокую производительность Я обнаружил, что профилировщик SQL Server очень полезен в этом деле. Он доступен в SQL Server Management Studio (но, к сожалению, не в экспресс-версии). Вы также можете выполнить Query > Включите фактический план выполнения , чтобы увидеть диаграмму времени, затрачиваемого на запрос.

Другие советы

Вы должны изучить ваши индексы и запросить рабочую нагрузку, прежде чем думать о разбиении. Если вы сделали большое количество вставок, ваш кластерный индекс может быть фрагментирован.

Даже если вы используете SQL Server Express, вы все равно можете создавать профили с помощью этого бесплатного инструмента: Profiler для Microsoft SQL Server 2005 / Экспресс-выпуск 2008 года

Я согласен с другими комментариями. При относительно небольшой базе данных (самая большая запись в таблице размером 1 мм) маловероятно, чтобы какая-либо активность в базе данных обеспечивала заметную нагрузку, если запросы оптимизированы, а остальная часть кода не использует базу данных с избыточными запросами. Это хорошая возможность почувствовать взаимодействие между запросами к базе данных и остальным кодом.

Посмотрите мои эксперименты по разбиению таблиц sql здесь [ http://faiz.kera.la/2009/08/02/does-partitioning-improve-performance-for-sql-tables/] . Надеюсь, что это полезно для вас ... И для вашего случая 1M не является значительным показателем. Возможно, вам нужно более точно настроить запросы, чем переходить к разбиению.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top