У нас есть SQL Server с довольно большими таблицами (но не слишком много) - возможно, 30-40 миллионов записей.Вставка и выбор производительности на SQL Server 2008 R2
Нам нужно
а) вставить прибло 1000 записей в секунду (на определенное время - но мы не можем пакетную вставку) к одной из этих таблиц, скажем TABLE_A и б) в то же время выберите * из TABLE_B где ID = _SOME_GUID_ID
Я заметил, что (а) в настоящее время занимает 500-600 мс под нагрузкой (на вставке, учитывая, что мы не можем их партия) и (б) занимает около 400ms (есть указатель)
Это не так близко к производительности, которую мы ищем. Есть ли способ оптимизировать эти таблицы/операции?
Текущий сервер имеет 16 гБ оперативной памяти, а общий размер базы данных составляет около 40 ГБ. Мы ожидаем, что эти таблицы станут в 10 раз большими в ближайшие несколько месяцев. Есть ли какой-либо осколок, который мы можем сделать с Sql Server? Мы увидели бы какие-либо улучшения производительности, используя MySQL Percona build?
Надеюсь, это имеет смысл. Я хотел добавить, что мы используем NHibernate, но вышеприведенная производительность - миллисекунды, потраченные на вставку в db - не включая приложение или nh служебные данные.
Спасибо, Яннис
TABLE_A имеет идентификатор int с автоматическим инкрементом, а TABLE_B имеет идентификатор guid.Сколько времени нужно вставлять в такие (довольно сильно индексированные) таблицы с учетом нашего оборудования? – Yannis
Запустите свои вставки из SSMS и протестируйте, как вы узнаете, что ваша проблема без тестирования ... может быть сеть, диски. Каков ваш физический макет, сколько оперативной памяти можно увидеть в SQL Server и т. Д. Что вы думаете о плане производительности – SQLMenace