Published on

June 7, 2022

Оптимизация производительности SQL Server: Проектирование и настройка сети исходной системы

Когда речь идет об оптимизации производительности вашей среды SQL Server, следует учитывать несколько факторов. В первой части этой серии мы обсудили производительность обработки, производительность запросов и аппаратные ресурсы. В этой статье мы сосредоточимся на bewt практиках и техниках оптимизации производительности для проектирования и настройки сети исходной системы.

Проектирование исходной системы

Независимо от того, насколько эффективными являются ваши размерности и кубическое проектирование, если ваша исходная система не предоставляет данные достаточно быстро, обработка займет больше времени, чем ожидалось. Вот несколько советов по проектированию и настройке вашей исходной системы для повышения производительности:

  • Проектирование базы данных: Храните файлы данных и файлы журнала на отдельных дисках с отдельными шпинделями. Используйте самые быстрые диски для ваших файлов данных и журнала. Создавайте файлы данных для каждого процессора на машине и равномерно распределяйте файлы по различным доступным дискам. Установите модель восстановления базы данных на SIMPLE, если не требуются транзакционные резервные копии. Проектируйте представления для извлечения данных из базовых таблиц реляционного хранилища данных, в которых можно указать подсказки запроса или условия фильтрации. Создавайте индексированные (материализованные) представления для агрегации фактических данных на источнике перед извлечением данных.
  • Управление индексами: Правильное создание/пересмотр индексов может значительно сократить время выполнения запроса. Создавайте соответствующие индексы на исходных таблицах для улучшения производительности запросов, выполняемых SSAS во время обработки куба или извлечения данных. Используйте DMV или Advisor по настройке индексов для определения и создания отсутствующих индексов на источнике. Однако будьте осторожны с созданием слишком большого количества индексов, так как это может замедлить операции записи/загрузки.
  • Разделение таблиц: Разделите огромные таблицы на несколько управляемых разделов, чтобы улучшить производительность запросов и загрузки данных. Рассмотрите возможность создания разделов, особенно для фактических таблиц, чтобы улучшить производительность. Разделение позволяет SQL Server параллельно получать доступ к данным, легко включать и выключать данные и касаться только разделов, содержащих запрошенные данные.
  • Сжатие данных: Используйте сжатие данных для снижения ввода/вывода на вашей исходной системе. SQL Server 2008 и более поздние версии поддерживают как сжатие строк, так и сжатие страниц для таблиц и индексов. Перед включением сжатия используйте хранимую процедуру sp_estimate_data_compression_savings, чтобы понять экономию места, которую вы получите.
  • Минимизация накладных расходов на блокировку: Укажите подсказку запроса NOLOCK или TABLOCK, чтобы минимизировать количество усилий SQL Server по управлению блокировками при выборке данных из таблицы.

Настройки сети

Оптимизация настроек сети критически важна для эффективного взаимодействия между вашим SQL Server и исходной системой. Вот некоторые соображения:

  • Подключение к исходной системе: Сотрудничайте с вашим поставщиком оборудования/командой, чтобы убедиться, что вы используете самую быструю возможную сеть. Укажите соответствующий уровень изоляции и время ожидания запроса для запросов, выполняемых против исходной системы. Увеличьте максимальное количество соединений, которые SSAS может создать параллельно для извлечения данных из исходных систем во время обработки куба.
  • Общая память: Если ваша исходная система (SQL Server) и SSAS находятся на одной машине, рассмотрите возможность использования сетевой библиотеки Shared Memory для повышения производительности. Это обходит физический сетевой стек и использует функцию общей памяти Windows для общения между SQL Server и SSAS.
  • Размер пакета сети/TDS: Настройте больший размер пакета для передачи данных между реляционным хранилищем данных и SSAS, чтобы минимизировать накладные расходы на разбиение данных на несколько частей/пакетов и их сборку на другом конце.

Следуя этим bewt практикам и техникам оптимизации проектирования и настройки сети исходной системы, вы можете значительно улучшить производительность вашей среды SQL Server. Следите за следующей частью этой серии, где мы обсудим другие аспекты оптимизации производительности SQL Server.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.