В настоящее время я работаю над проектом, в котором мы используем Microsoft SQL Server.
Для целей моего проекта нам нужно создать и управлять таблицей с почти 30 миллионами записей. Таблица состоит из примерно 50 полей.
У нас есть один первичный ключ, для которого мы создали некластеризованный индекс.
Чтобы справиться с одним из наших вариантов использования, мы должны запросить этотаблица в столбце datetime.
Например, мы хотим получить все записи, для которых эта дата больше, чем 2015-01-01, что возвращает нам 5 миллионов записей за 7'40 ''!
Все записи датированы между 2010-01-01 и сегодняшним днем.
Мы должны оптимизировать запрос, потому что 7'40 '' не подходит для наших нужд.
Я уже пытался внести некоторые изменения:
- создать некластеризованный индекс для этого столбца даты;
- создать разделы: я создал новое поле, которое содержит годполе даты, и я разбил таблицу на эти годы: один раздел для 2010 года, один для 2011 года, один для 2012 года, ...
Несмотря на эти корректировки, запрос к индексируемому полю даты илиЗапросы для конкретного раздела по-прежнему оченьочень долго (от 5 до 7 минут).
У вас есть идея или совет?
Я работал несколько лет назад на Oracle с миллионами записей, и я помню, что использование разделов значительноулучшил производительность, поэтому я немного разочарован этими результатами на SQL Server: (
Спасибо!
Prad