Читать таблицы MSSQL в порядке дисков
Как воспользоваться преимуществами организации дискового ввода-вывода
Мне нужно сделать именно это, но на таблицах Microsoft SQL Server.
У меня есть база данных с +100 таблицами. Мне нужно прочитать каждую запись каждой таблицы.
Какие-либо предложения? Стоит ли писать код, выполняющий тесты и отладку за несколько секунд?
Было бы очень хорошо, если бы я мог сказать, где каждая таблица находится на диске.
И потому, что кто-то спросит: да, это узкое место в моей программе.
1 ответ
Этот другой ответ не имеет отношения к SQL Server. SQL Server выполняет ввод-вывод по-своему.
Некоторые указатели, хотя:
- Убедитесь, что каждая таблица имеет кластерный индекс
- У вас есть регулярное обслуживание индекса
- Убедитесь, что у вас есть хорошие диски (RAID и т. Д.)
- Используйте редакцию Enterprise для функции упреждающего чтения, если это так важно
- Убедитесь, что у вас достаточно оперативной памяти
Что это значит?
- Если вы хотите использовать SQL Server Express на одном диске рабочей станции, не беспокойтесь. Вы не можете оптимизировать это
- Наличие кластеризованных индексов и обслуживание индексов гарантирует, что данные в основном непрерывны на диске (с учетом последующих изменений данных)
- Прокси для того, сколько времени это займет, будет запускать DBCC CHECKDB для всей таблицы. Или ALTER INDEX перестроить. Оба требуют, чтобы все данные были прочитаны с диска для всех таблиц