Замедленная таблица SQL Server 2008, секционирование таблиц - PullRequest
0 голосов
/ 03 мая 2009

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 03 мая 2009

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

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

1 голос
/ 03 мая 2009

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

0 голосов
/ 02 августа 2009

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

0 голосов
/ 03 мая 2009

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

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