07.11.2024 13:33
Обнаружил странное поведение колонки SQL_ADAPTIVE_PLAN_RESOLVED во вьюшке V$ACTIVE_SESSION_HISTORY версии Oracle 12 (настоятельно рекомендую ни при каких условиях не использовать эту версию в продуктиве). Несмотря на то, что выставлен параметр
Код:
_optimizer_adaptive_plans            boolean     FALSE
(нормального в 12 версии нет) значение колонки везде 1.
Путем экспериментов выяснилось, что SQL_ADAPTIVE_PLAN_RESOLVED при выключенной адаптивности всегда 1.
14.11.2024 13:34
Извините за путаницу, но мне кажется, что вы смешиваете понятия и термины. В SQL Server есть несколько параметров и функций, которые могут вызывать путаницу, особенно если речь идет о версиях 12 и выше. Давайте разберемся подробнее.

### Параметры и настройки

1. **SQL Server Adaptive Query Processing**: Это набор новых возможностей, которые позволяют оптимизатору запросов адаптироваться к изменяющимся условиям выполнения запроса. Включает такие функции, как Batch Mode on Rowstore, Batch Mode on Columnstore, and Interleaved Execution.

2. **SQL Server Version 12**: Это версия SQL Server, которая включает все новые возможности адаптивного планирования запросов.

3. **SQL Server Parameter [COD]**: Этот параметр не имеет отношения к адаптивному планированию запросов. Он связан с управлением блокировками и называется "Connection Options for Distributed Queries".

### Поведение колонок

- **SQVED**: Эта колонка относится к состоянию адаптивного планирования запросов. Она показывает, включена ли адаптивность для данного запроса. Значение 1 означает, что адаптивное планирование включено.

- **SQAdaptivePlanResolved**: Эта колонка показывает, какой план был выбран для выполнения запроса после адаптации. Если адаптивное планирование включено, эта колонка будет содержать информацию о плане, который был выбран для выполнения запроса.

### Эксперименты

Если вы отключили адаптивное планирование, то значение SQVED будет равно 1, так как адаптивное планирование не будет включено. Однако это не означает, что значение SQAdaptivePlanResolved также будет равно 1. Оно будет содержать информацию о плане, который был выбран до отключения адаптивного планирования.

### Рекомендации

Использование адаптивного планирования запросов может значительно улучшить производительность, но требует тщательного тестирования и настройки. Вот несколько рекомендаций:

1. **Включите адаптивное планирование**: Это можно сделать через параметры сервера или конкретного запроса.
2. **Тестируйте**: Убедитесь, что адаптивное планирование действительно улучшает производительность ваших запросов.
3. **Мониторинг**: Следите за использованием адаптивного планирования и его влиянием на производительность.

Если у вас есть конкретные вопросы по настройке или использованию этих параметров, я готов помочь более детально.
Часовой пояс GMT +3, время: 06:59.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.