2013-02-26 4 views
6

Я выполняю некоторые агрегирующие запросы на некоторых очень больших таблицах в среде OLAP. В настоящее время я ограничен узким диском IO со скоростью 200 МБ/с.SQL Подсказка, чтобы загрузить всю таблицу в оперативную память до ее выполнения?

Я выполняю эти запросы на машине с 92 ГБ ОЗУ. Есть ли какие-либо подсказки SQL, которые я могу записать в свой запрос, что в основном говорит SQL, чтобы загрузить всю таблицу в ОЗУ до ее выполнения?

Что-то вроде:

выберите * из MYTABLE с (псевдодиска)

Я использую MS TSQL.

+0

['DBCC PINTABLE'] (http://msdn.microsoft.com/en-us/library/ms178015 (v = sql.90) .aspx) используется для этого, но теперь отключен. Следующая версия имеет Hekaton для таблиц памяти. Вы, по-видимому, предположительно должны были бы вытащить бутылочку в первую очередь, загружая данные в ОЗУ, поэтому не уверены, насколько это поможет (может быть, затруднительно) загружать в ОЗУ сначала, а просто загружать в ОЗУ по мере выполнения запроса. –

ответ

2

Нет. Механизм базы данных будет делать это автоматически, если у него достаточно места в кеше страницы.

Вы можете установить объем используемой памяти с помощью SQL Server Management Studio. Щелкните правой кнопкой мыши на сервере, выберите опцию памяти и поместите большое количество в поле «Минимальная память сервера». Если у вас есть 92 Гбайт ОЗУ, то число, например, 85 000, вероятно, хорошо. Вам нужно оставить дополнительную память для операционной системы и других сервисов на машине.

Предполагая, что стол (ы) помещается в память, это должно облегчить обработку. Если они не вписываются в память, вам может потребоваться другой подход.

+0

SQL не идеален для прогнозирования того, что помещать в кеш чтения, поэтому кажется, что если бы этот намек существовал, это могло бы значительно ускорить некоторые случаи запросов. –

+0

И для других классов запросов загрузка таблицы объемом 50 ГБ в оперативную память фактически будет основной частью времени выполнения. Кажется идеальной ситуацией, чтобы добавить подсказку. –

+0

@JohnShedletsky. , , Я полагаю, что в многопользовательской среде с обработкой смешанной нагрузки возникают огромные трудности в получении такого намека на работу. Наличие интеллектуального кеша гораздо более универсально в качестве решения. Однако это не форум для такого обсуждения. –