Я пытаюсь извлечь файл журнала приложения из одной таблицы. Оператор select запроса довольно прост.
select top 200000 *
from dbo.transactionlog
where rowid>7
and rowid <700000 and
Project='AmWINS'
Время запроса для выбора выше 5 минут. Это считается долго? Во время работы выбора также выполняется массовая вставка.
[EDIT]
На самом деле у меня возникла серьезная проблема с моей текущей базой данных журналов производства,
По сути, у нас есть только одна таблица (транзакция). весь журнал приложения будет вставлен в эту таблицу. Для проекта, подобного AmWINS, основанного на результате выборочного подсчета, мы вставляем около 800 000 записей в день. Вставка записи выполняется 24 часа в сутки в производственной среде. Пользователь хотел бы извлечь данные из таблицы, если пользователь хочет проверить журналы транзакций. Поэтому нам нужно выбрать записи из таблицы, если необходимо.
Я пытался смоделировать в среде UAT, чтобы накачать объем в соответствии с производством, которое до сегодняшнего дня выросло до 10 миллионов записей. и в то время как я пытаюсь извлечь записи, в то же время я имитирую с массовой вставкой, чтобы она выглядела как для производственной среды. Потребовалось около 5 минут, чтобы извлечь 200 тыс. Записей.
Во время процесса извлечения я наблюдаю, что на физическом сервере SQL процессор достигает резкого скачка до 95%.
таблицы имеют 13 полей и включение идентификатора (rowid) с bigint. rowid это ПК.
Индексы создаются на Date, Project, module и RefNumber.
таблицы создаются при блокировке строк и включенной блокировке страниц.
Я использую SQL Server 2005.
Надеюсь, вы, ребята, можете дать мне несколько профессиональных советов, чтобы просветить меня. Спасибо.