Π Π°Π±ΠΎΡ‚Π° с высоконагруТСнной Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π² экосистСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто сопряТСна с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΆΠ°Π»ΡƒΡŽΡ‚ΡΡ Π½Π° Β«Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°Β» ΠΈΠ»ΠΈ зависаниС ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², администратору ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ происходит Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ». ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° запросов 1Π‘ β€” это Π½Π΅ просто просмотр тСкста ΠΊΠΎΠ΄Π°, Π° комплСксный процСсс, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, ΠΏΠ»Π°Π½ΠΎΠ² запросов ΠΈ состояния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.

БистСма 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнный язык запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ транслируСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ SQL для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π” (MSSQL, PostgreSQL ΠΈΠ»ΠΈ Oracle). Ошибки Π½Π° любом этапС этой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ критичСскому сниТСнию скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСго прСдприятия. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΡƒΠ·ΠΊΠΎΠ΅ мСсто являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для сопровоТдСния систСмы.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ процСссов выполнСния ΠΊΠΎΠ΄Π°. Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ клиСнтской части ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ сСрвСра, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ тСхнологичСский ΠΆΡƒΡ€Π½Π°Π» для поиска «тяТСлых» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Анализ запросов Ρ‡Π΅Ρ€Π΅Π· Консоль запросов

Π‘Π°ΠΌΡ‹ΠΉ доступный ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ инструмСнт для ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ β€” это встроСнная консоль запросов. Она позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ любой запрос Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ структуру Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈ, Ρ‡Ρ‚ΠΎ самоС Π²Π°ΠΆΠ½ΠΎΠ΅, ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ врСмя выполнСния. Для запуска ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ внСшняя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ прСдприятия с ΠΏΡ€Π°Π²Π°ΠΌΠΈ администратора.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с консолью Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½ΠΎ ΠΈ Π½Π° врСмя компиляции ΠΈ выполнСния. ΠœΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ запрос ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слСдствиСм Π½Π΅Π²Π΅Ρ€Π½ΠΎ построСнного условия ΠΈΠ»ΠΈ отсутствия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… индСксов Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ простой Π²Ρ‹Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ сСкунды, это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ сигнал ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ» ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°. Иногда ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ запуск ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ·-Π·Π° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΎΠ², Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ β€” быстрыС. Однако, Ссли врСмя скачСт ΠΈΠ»ΠΈ постоянно высокоС, трСбуСтся Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ тСкста запроса ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тяТСлых запросов Π² консоль Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сСрвСр ΠΈ ΡƒΡΡƒΠ³ΡƒΠ±ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ тСсты Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹ ΠΈΠ»ΠΈ Π² тСхнологичСскоС ΠΎΠΊΠ½ΠΎ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β«ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния» Π² консоли запросов, Ссли ваша вСрсия ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚ΠΈΠΏ Π‘Π£Π‘Π” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ эту ΠΎΠΏΡ†ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ индСксы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сСрвСр.

Для слоТных случаСв ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст запроса Π² тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для форматирования ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°. Часто ошибка кроСтся Π² Π»ΠΈΡˆΠ½ΠΈΡ… соСдинСниях ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС Ρ‚Π°Π±Π»ΠΈΡ† Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π˜Π—.

ИспользованиС ВСхнологичСского ΠΆΡƒΡ€Π½Π°Π»Π° (Π’Π–)

ВСхнологичСский ΠΆΡƒΡ€Π½Π°Π» β€” это ΠΌΠΎΡ‰Π½Π΅ΠΉΡˆΠΈΠΉ инструмСнт диагностики, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ фиксируСт события Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ процСссов сСрвСра 1Π‘. Он позволяСт ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса: ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° получСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Π΄ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Настройка Π’Π– Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рСдактирования Ρ„Π°ΠΉΠ»Π° logcfg.xml Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ сСрвСра.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ запрос, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ событий, связанных с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ SQL. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ администраторы Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚ события DBMSSQL (для MS SQL) ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ события для PostgreSQL. Π’ Π»ΠΎΠ³Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½ΠΎ врСмя Π½Π°Ρ‡Π°Π»Π°, врСмя окончания ΠΈ тСкст самого запроса, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

  • πŸ” SQL β€” событиС фиксации тСкста SQL-запроса, отправляСмого Π² Π‘Π£Π‘Π”.
  • ⏱️ DBCall β€” событиС, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
  • πŸ”’ Lock β€” событиС, Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ установку ΠΈ снятиС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Анализ Π»ΠΎΠ³ΠΎΠ² Π’Π– Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ объСм записСй ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ. РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΏΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ выполнСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΊΠ°Ρ‚ΡŒ запросы, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ дольшС 1000 мс). Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ Β«ΡˆΡƒΠΌΒ» ΠΈ ΡΡ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ логирования всСх запросов Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ сСрвСрС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ дискового пространства ΠΈ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ самого сСрвСра 1Π‘ ΠΈΠ·-Π·Π° записи Π»ΠΎΠ³ΠΎΠ².

Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² logcfg.xml?

Π’ сСкции event Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свойство duration, ΡƒΠΊΠ°Π·Π°Π² минимальноС врСмя Π² миллисСкундах. НапримСр: Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ дольшС 1 сСкунды.

ПослС сбора Π΄Π°Π½Π½Ρ‹Ρ… Π»ΠΎΠ³ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сторонних ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ 1C:LogAnalyzer ΠΈΠ»ΠΈ спСциализированных скриптов. Они Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ выводят Ρ‚ΠΎΠΏ самых рСсурсоСмких запросов.

ВыявлСниС ΠΈ Π°Π½Π°Π»ΠΈΠ· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

Одной ΠΈΠ· самых частых ΠΏΡ€ΠΈΡ‡ΠΈΠ½ зависания интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π’ 1Π‘ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° транзакция измСняСт Π΄Π°Π½Π½Ρ‹Π΅, Π° другая пытаСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ самыС записи. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ управляСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Π½ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ срСдствами Π‘Π£Π‘Π”.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· стандартныС срСдства ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ запросы ΠΊ систСмным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π‘Π£Π‘Π”. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия администратор ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ список сСансов ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ управляСмыС ΠΈ нСуправляСмыС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Π’ΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ влияния Частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°
Монопольная Высокий ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ
РаздСляСмая Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ†ΠΈΠΊΠ»Π΅ Π±Π΅Π· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ
Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° рСгистра ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ НСкоррСктная Ρ€Π°Π±ΠΎΡ‚Π° с ΠΈΡ‚ΠΎΠ³Π°ΠΌΠΈ рСгистров накоплСния

Для поиска Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ запрос ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² самой Π‘Π£Π‘Π”. Π’ MS SQL Server это систСмноС прСдставлСниС sys.dm_tran_locks. Бопоставив ID процСсса Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с ID сСанса Π² 1Π‘, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π΄Π΅Ρ€ΠΆΠΈΡ‚ Π±Π°Π·Ρƒ.

β˜‘οΈ Диагностика Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

УстранСниС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ измСнСния Π»ΠΎΠ³ΠΈΠΊΠΈ провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ разнСсСния тяТСлых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° Π½ΠΎΡ‡Π½ΠΎΠ΅ врСмя. Иногда ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ оптимизация индСксов, Ρ‡Ρ‚ΠΎ сниТаСт врСмя удСрТания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π‘Π£Π‘Π”.

ΠŸΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ SQL Server

Если 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ MS SQL Server, Ρ‚ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ инструмСнтом становится SQL Server Profiler ΠΈΠ»ΠΈ Π΅Π³ΠΎ соврСмСнный Π°Π½Π°Π»ΠΎΠ³ β€” Extended Events. Π­Ρ‚ΠΈ инструмСнты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ запросы Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π΄Π²ΠΈΠΆΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, минуя прослойку ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ запросы ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ тСкст SQL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° встроСнныС срСдства 1Π‘ Π½Π΅ Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π² запрос, ΠΈ ΠΏΠ»Π°Π½ выполнСния, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ SQL Server.

ΠžΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° события RPC:Completed ΠΈ SQL:BatchCompleted. Они ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Duration) ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро Π½Π°ΠΉΡ‚ΠΈ «тяТСловСсов». Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ события Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (Lock:Deadlock), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (deadlocks), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ возмоТности инструмСнтов ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π‘Π£Π‘Π” ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… вСрсий SQL Server. ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Microsoft для вашСй вСрсии Π‘Π£Π‘Π”.

πŸ’‘

ИспользованиС SQL Profiler Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ высоких ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ доступа ΠΊ сСрвСру Π‘Π£Π‘Π” ΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠ² чтСния ΠΏΠ»Π°Π½ΠΎΠ² выполнСния.

Анализ ΠΏΠ»Π°Π½ΠΎΠ² выполнСния Π² ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€Π΅ позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π΄Π΅Π»Π°Π΅Ρ‚ Π»ΠΈ сСрвСр сканированиС всСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan) вмСсто поиска ΠΏΠΎ индСксу (Index Seek). Π­Ρ‚ΠΎ явный ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с индСксами ΠΈΠ»ΠΈ статистикой.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ пСрСстроСниС индСксов

Частой ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов являСтся фрагмСнтация индСксов ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ статистика распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°ΠΆΠ΅ идСально написанный запрос Π² 1Π‘ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Ссли Π‘Π£Π‘Π” Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ»Π°Π½ ΠΈΠ·-Π·Π° Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ распрСдСлСнии ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

РСгулярноС обслуТиваниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ пСрСстроСниС (Rebuild) ΠΈΠ»ΠΈ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ (Reorganize) индСксов. Для Π±Π°Π· 1Π‘ это критичСски ваТная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ записи Π΄Π°Π½Π½Ρ‹Ρ… (постоянноС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) быстро ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ стандартныС ΠΏΠ»Π°Π½Ρ‹ обслуТивания SQL Server ΠΈΠ»ΠΈ скрипты Ola Hallengren.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… индСксов. Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ индСксы ускорили Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… запросов. Однако Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, учитывая, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ индСкс замСдляСт вставку ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

  • πŸš€ Fragmentation β€” ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ раздроблСнности страниц индСкса, Π²Π»ΠΈΡΡŽΡ‰Π°Ρ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния.
  • πŸ“Š Statistics β€” гистограммы распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ запросов.
  • πŸ› οΈ Maintenance Plan β€” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ обслуТивания Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ индСксов ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмных динамичСских прСдставлСний, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ sys.dm_db_index_physical_stats. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ 30% ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ пСрСстроСния индСкса.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ обслуТивания индСксов Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅?
Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ мастСр SQL
Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Ola Hallengren
Π ΡƒΡ‡Π½ΠΎΠ΅ пСрСстроСниС
НС обслуТиваСм
НС знаю

ЧастыС ошибки ΠΏΡ€ΠΈ написании запросов

Помимо ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π° сторонС инфраструктуры, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ часто становятся ошибки Π² самом ΠΊΠΎΠ΄Π΅ запросов 1Π‘. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ нСосознанно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСэффСктивныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Одной ΠΈΠ· распространСнных ошибок являСтся использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² условиях соСдинСния ΠΈΠ»ΠΈ ΠΎΡ‚Π±ΠΎΡ€Π°, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ использованиС индСксов. НапримСр, использованиС Π“ΠžΠ”(Π”Π°Ρ‚Π°) Π² условии Π“Π”Π• ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ быстрый поиск ΠΏΠΎ индСксу Π΄Π°Ρ‚Ρ‹ Π² ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ΠΠ•ΠŸΠ ΠΠ’Π˜Π›Π¬ΠΠž:

Π“Π”Π• Π“ΠžΠ”(Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π”Π°Ρ‚Π°) = 2023

ΠŸΠ ΠΠ’Π˜Π›Π¬ΠΠž:

Π“Π”Π• Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π”Π°Ρ‚Π° BETWEEN '2023.01.01' И '2023.12.31 23:59:59'

Π’Π°ΠΊΠΆΠ΅ стоит ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… запросов Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° этапы ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ часто ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ запрос с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² условии Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ?

Когда функция примСняСтся ΠΊ полю Π² условии, Π‘Π£Π‘Π” Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс для этого поля, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса Π½Π΅ совпадаСт с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π΅Ρ€Π²Π΅Ρ€Ρƒ приходится ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ запись, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan).

Как Π½Π°ΠΉΡ‚ΠΈ запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся прямо сСйчас?

Π’ 1Π‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Β«ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ» ΠΈΠ»ΠΈ запросы ΠΊ систСмным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ сСансов. Π’ SQL Server ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСдставлСниС sys.dm_exec_requests, ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π² Π΅Π³ΠΎ ΠΏΠΎ ID Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΈ отсортировав ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания ΠΈΠ»ΠΈ выполнСния.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ deadlock ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ?

Π’Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (deadlock) Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° процСсса ΠΆΠ΄ΡƒΡ‚ рСсурсы, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ порядкС Π²ΠΎ всСх транзакциях ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ врСмя удСрТания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, выполняя Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния Π²Π½Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

МоТно Π»ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ запрос Π±Π΅Π· измСнСния ΠΊΠΎΠ΄Π°?

Π”Π°, часто ускорСниС достигаСтся Π·Π° счСт обновлСния статистики, пСрСстроСния индСксов, увСличСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти сСрвСра SQL ΠΈΠ»ΠΈ настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² максимизации ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° (MAXDOP). Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π»ΠΎΠ³ΠΎΠ² Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ физичСскиС диски.