Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
optimizacija_nastroek_ms_sql [2026/04/22 11:07] tro |
optimizacija_nastroek_ms_sql [2026/04/25 12:06] (текущий) tro |
||
|---|---|---|---|
| Строка 9: | Строка 9: | ||
| - **Blocked process threshold = 5** — не впливає на продуктивність, | - **Blocked process threshold = 5** — не впливає на продуктивність, | ||
| - **TempDB — розташування і кількість файлів** - TempDB обов' | - **TempDB — розташування і кількість файлів** - TempDB обов' | ||
| - | - **Автозріст файлів баз 1С (FILEGROWTH)** — аварійний механізм на випадок якщо файл несподівано заповнився. Під час автозросту SQL зупиняє всі операції запису в базу — користувачі 1С відчувають зависання. Чим більший крок зросту — тим рідше це відбувається.Рекомендовані значення: | + | - **Автозріст файлів баз 1С (FILEGROWTH)** — аварійний механізм на випадок якщо файл несподівано заповнився. Під час автозросту SQL зупиняє всі операції запису в базу — користувачі 1С відчувають зависання. Чим більший крок зросту — тим рідше це відбувається.Рекомендовані значення: |
| + | - Для планів | ||
| ===== Скрипти sql ===== | ===== Скрипти sql ===== | ||
| Строка 86: | Строка 87: | ||
| * AUTO_CREATE_STATISTICS - Оптимізатор не " | * AUTO_CREATE_STATISTICS - Оптимізатор не " | ||
| * PAGE_VERIFY CHECKSUM - Захист від тихого пошкодження даних | * PAGE_VERIFY CHECKSUM - Захист від тихого пошкодження даних | ||
| - | * AUTO_UPDATE_STATISTICS_ASYNC - Вмикаэ асинхонне оновлення статистики без пауз для користувачів | + | * AUTO_UPDATE_STATISTICS_ASYNC - Вмикає асинхонне оновлення статистики без пауз для користувачів |
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| Більшість цих параметрів зберігаються в самій базі тому при відновленні з бекапу з іншими налаштуваннями потрібно по новому їх встановлювати | Більшість цих параметрів зберігаються в самій базі тому при відновленні з бекапу з іншими налаштуваннями потрібно по новому їх встановлювати | ||
| Строка 198: | Строка 199: | ||
| ORDER BY name; | ORDER BY name; | ||
| </ | </ | ||
| + | < | ||
| + | -- ============================================================ | ||
| + | -- ВІДКАТ параметрів баз 1С до стандартних значень SQL Server | ||
| + | -- Запускати при проблемах після увімкнення RCSI / Snapshot | ||
| + | -- ============================================================ | ||
| + | |||
| + | USE master; | ||
| + | |||
| + | DECLARE @dbname NVARCHAR(128); | ||
| + | DECLARE @sql NVARCHAR(MAX); | ||
| + | |||
| + | DECLARE db_cursor CURSOR FOR | ||
| + | SELECT name | ||
| + | FROM sys.databases | ||
| + | WHERE database_id > 4 | ||
| + | AND state_desc = ' | ||
| + | AND name NOT IN (' | ||
| + | ORDER BY name; | ||
| + | |||
| + | OPEN db_cursor; | ||
| + | FETCH NEXT FROM db_cursor INTO @dbname; | ||
| + | |||
| + | WHILE @@FETCH_STATUS = 0 | ||
| + | BEGIN | ||
| + | PRINT '>>> | ||
| + | |||
| + | -- AUTO_UPDATE_STATISTICS_ASYNC → OFF (дефолт) | ||
| + | SET @sql = 'ALTER DATABASE [' + @dbname + '] SET AUTO_UPDATE_STATISTICS_ASYNC OFF;'; | ||
| + | EXEC sp_executesql @sql; | ||
| + | PRINT ' | ||
| + | |||
| + | -- ALLOW_SNAPSHOT_ISOLATION → OFF (дефолт) | ||
| + | SET @sql = 'ALTER DATABASE [' + @dbname + '] SET ALLOW_SNAPSHOT_ISOLATION OFF;'; | ||
| + | EXEC sp_executesql @sql; | ||
| + | PRINT ' | ||
| + | |||
| + | -- READ_COMMITTED_SNAPSHOT → OFF (дефолт, | ||
| + | SET @sql = 'ALTER DATABASE [' + @dbname + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;'; | ||
| + | EXEC sp_executesql @sql; | ||
| + | |||
| + | SET @sql = 'ALTER DATABASE [' + @dbname + '] SET READ_COMMITTED_SNAPSHOT OFF;'; | ||
| + | EXEC sp_executesql @sql; | ||
| + | |||
| + | SET @sql = 'ALTER DATABASE [' + @dbname + '] SET MULTI_USER;'; | ||
| + | EXEC sp_executesql @sql; | ||
| + | PRINT ' | ||
| + | |||
| + | -- AUTO_UPDATE_STATISTICS → ON (дефолт, | ||
| + | -- AUTO_CREATE_STATISTICS → ON (дефолт, | ||
| + | -- PAGE_VERIFY → залишаємо CHECKSUM (краще ніж дефолт NONE) | ||
| + | |||
| + | PRINT ' | ||
| + | PRINT ''; | ||
| + | |||
| + | FETCH NEXT FROM db_cursor INTO @dbname; | ||
| + | END; | ||
| + | |||
| + | CLOSE db_cursor; | ||
| + | DEALLOCATE db_cursor; | ||
| + | |||
| + | PRINT ' | ||
| + | PRINT ' | ||
| + | PRINT ' | ||
| + | |||
| + | -- Фінальна перевірка | ||
| + | SELECT | ||
| + | name AS база, | ||
| + | is_auto_update_stats_on | ||
| + | is_auto_update_stats_async_on | ||
| + | is_auto_create_stats_on | ||
| + | page_verify_option_desc | ||
| + | snapshot_isolation_state_desc | ||
| + | is_read_committed_snapshot_on | ||
| + | FROM sys.databases | ||
| + | WHERE database_id > 4 | ||
| + | AND state_desc = ' | ||
| + | ORDER BY name; | ||
| + | </ | ||
| + | <WRAP center round info 60%> | ||
| + | AUTO_UPDATE_STATISTICS, | ||
| + | </ | ||
| + | ====== Вимкнення FILESTREAM ====== | ||
| + | Реальний ефект буде мінімальний для кінцевих користувачів. Головне що він не буде створювати зайвий фоновий процес і не буде займати ресурси без жодної користі для 1С. | ||
| + | < | ||
| + | -- Вимкнути FILESTREAM — не потрібен для 1С | ||
| + | EXEC sp_configure ' | ||
| + | RECONFIGURE; | ||
| + | </ | ||
| + | < | ||
| + | -- Перевірка | ||
| + | EXEC sp_configure ' | ||
| + | -- run_value має стати 0 | ||
| + | </ | ||
| + | |||
| + | ====== Налаштування 1C ====== | ||
| + | ===== Підключення кластера 1С до баз SQL ===== | ||
| + | замість localhost (протокола TCP/IP) краще використовувати sharedmemory. Перевірка поточного протоколу підключення | ||
| + | < | ||
| + | SELECT | ||
| + | s.program_name, | ||
| + | c.net_transport, | ||
| + | c.client_net_address, | ||
| + | COUNT(*) AS кількість | ||
| + | FROM sys.dm_exec_sessions s | ||
| + | JOIN sys.dm_exec_connections c ON s.session_id = c.session_id | ||
| + | WHERE s.program_name LIKE ' | ||
| + | OR s.program_name LIKE ' | ||
| + | OR s.program_name LIKE ' | ||
| + | GROUP BY s.program_name, | ||
| + | ORDER BY кількість DESC; | ||
| + | </ | ||
| + | Якщо "net transport" | ||
| + | {{ : | ||
| + | |||
| ====== Корисні посилання ====== | ====== Корисні посилання ====== | ||
| - | * https:// | + | * [[https:// |
| + | * [[https:// | ||