Π’ экосистСмС 1Π‘ ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° с историчСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прСдставляСт собой ΠΎΠ΄Π½Ρƒ ΠΈΠ· самых слоТных Π·Π°Π΄Π°Ρ‡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Когда бизнСсу трСбуСтся ΡƒΠ·Π½Π°Ρ‚ΡŒ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ, простой Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈΠ· основной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ рСгистра свСдСний становится Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ нСэффСктивной. ИмСнно здСсь Π½Π° сцСну Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, извСстный ΠΊΠ°ΠΊ срСз послСдних.

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

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠ°ΠΊ Β«Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик», довСряя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ всю Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Однако, ΠΊΠΎΠ³Π΄Π° объСм Π΄Π°Π½Π½Ρ‹Ρ… исчисляСтся ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ записСй, абстрактноС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ пСрСстаСт Π±Ρ‹Ρ‚ΡŒ достаточным. НСобходимо Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ SQL-запросы Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²ΠΈΠΆΠΎΠΊ 1Π‘ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ физичСскиС индСксы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ускорСния Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

Π›ΠΎΠ³ΠΈΠΊΠ° формирования срСза Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”

Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ РСгистрБвСдСний.Π˜ΠΌΡΠ Π΅Π³ΠΈΡΡ‚Ρ€Π°.Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ… Π² тСкстС запроса, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π½Π΅ обращаСтся ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ физичСской Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ВмСсто этого ΠΎΠ½Π° динамичСски Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ слоТный SQL-запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обращаСтся ΠΊ основной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ рСгистра свСдСний. Π­Ρ‚ΠΎΡ‚ запрос Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΉΡ‚ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ запись с максимальной Π΄Π°Ρ‚ΠΎΠΉ, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ.

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: систСма выполняСт Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎ всСм измСрСниям рСгистра ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΡ‰Π΅Ρ‚ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Β«ΠŸΠ΅Ρ€ΠΈΠΎΠ΄Β». ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΉΠ΄Π΅Π½ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, дСлаСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ соСдинСниС) для получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠΌΠ΅Π½Π½ΠΎ этой Π΄Π°Ρ‚Π΅. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… индСксов этот процСсс Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Full Table Scan), Ρ‡Ρ‚ΠΎ ΡƒΠ±ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π’ зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π” (MS SQL, PostgreSQL, Oracle), ΠΏΠ»Π°Π½ выполнСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Π½ΠΎ логичСская ΡΡƒΡ‚ΡŒ остаСтся Π΅Π΄ΠΈΠ½ΠΎΠΉ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° стараСтся ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ диску, Π½ΠΎ успСх этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, насколько структура индСксов соотвСтствуСт условиям Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Если индСкс Π½Π΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ поля, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сортировкС, Π‘Π£Π‘Π” Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ массивы Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈΠ»ΠΈ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… дисках.

Роль структуры рСгистра ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ записи

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ срСза послСдних являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка самого рСгистра свСдСний Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ элСмСнтом здСсь выступаСт структура ΠΊΠ»ΡŽΡ‡Π° записи. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски создаСт кластСрный индСкс (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³) ΠΏΠΎ полям, входящим Π² ΠΊΠ»ΡŽΡ‡ записи, Π² строгом порядкС ΠΈΡ… слСдования.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΊΠ»ΡŽΡ‡Π΅ записи ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΊΠ»ΡŽΡ‡Π° являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ сСлСктивным ΠΏΡ€ΠΈ поискС. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ часто Π΄Π΅Π»Π°Ρ‚ΡŒ срСзы Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π°, Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ Β«ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Β» Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚ΠΎΡΡ‚ΡŒ Π² ΠΊΠ»ΡŽΡ‡Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»Π΅ΠΌ «НомСнклатура». ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов Π½Π΅ смоТСт эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс для отсСчСния Π»ΠΈΡˆΠ½ΠΈΡ… Π²Π΅Ρ‚Π²Π΅ΠΉ Π΄Π΅Ρ€Π΅Π²Π° поиска.

  • πŸ” Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ β€” ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΊΠ»ΡŽΡ‡ записи.
  • πŸ“… ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ β€” автоматичСски добавляСтся Π² ΠΊΠΎΠ½Π΅Ρ† ΠΊΠ»ΡŽΡ‡Π° записи ΠΈ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ срСзов.
  • 🏷️ РСсурсы β€” хранят измСняСмыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°.

Помимо основного ΠΊΠ»ΡŽΡ‡Π°, Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы. Если Π² запросС ΠΊ срСзу послСдних ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ условия ΠΎΡ‚Π±ΠΎΡ€Π° ΠΏΠΎ полям, Π½Π΅ входящим Π² ΠΊΠ»ΡŽΡ‡ записи (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Π±ΠΎΡ€ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ), Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса ΠΏΠΎ этому полю ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса Π² Ρ€Π°Π·Ρ‹. Однако ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство индСксов замСдляСт запись Π΄Π°Π½Π½Ρ‹Ρ…, поэтому здСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ баланс.

πŸ“Š Какая Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² вашСй основной Π±Π°Π·Π΅ 1Π‘?
MS SQL Server
PostgreSQL
Oracle
IBM DB2
Другая

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов ΠΈ использованиС условий ΠΎΡ‚Π±ΠΎΡ€Π°

НаписаниС эффСктивного запроса ΠΊ срСзу послСдних Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внимания ΠΊ дСталям синтаксиса ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Бамая частая ошибка β€” отсутствиС ТСсткой Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°. Запрос Π±Π΅Π· указания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Β«Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚Β») заставляСт систСму ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΏΠΎ всСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‡Ρ‚ΠΎ являСтся самой тяТСлой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. ВсСгда явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄Π°Ρ‚Ρ‹ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ….

Условия ΠΎΡ‚Π±ΠΎΡ€Π° (WHERE) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ максимально ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуру индСкса. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠ»Π΅ΠΉ, стоящих Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ»ΡŽΡ‡Π° записи. Если Π²Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ полю ΠΊΠ»ΡŽΡ‡Π°, Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ порядком ΠΏΠΎΠ»Π΅ΠΉ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° ΠΏΠΎ полям ΠΊΠ»ΡŽΡ‡Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π“ΠžΠ”(ΠŸΠ΅Ρ€ΠΈΠΎΠ΄) = 2026) Π΄Π΅Π»Π°Π΅Ρ‚ индСкс Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ. ВсСгда сравнивайтС ΠΏΠΎΠ»Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с константой ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ.

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«Π•Π‘Π’Π¬ NULLΒ» Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π‘Π£Π‘Π” это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ измСнСнию ΠΏΠ»Π°Π½Π° выполнСния запроса ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρƒ ΠΎΡ‚ использования ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π‘Ρ€Π΅Π· послСдних vs Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

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

Π‘ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· срСза послСдних Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ (Π² памяти ΠΈΠ»ΠΈ Π½Π° дискС), ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ индСксы, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ основныС соСдинСния ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΡƒΠΆΠ΅ ΠΈΠ· этой ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ структуры. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° итоговая Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° составляСт ΠΌΠ°Π»ΡƒΡŽ долю ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ объСма Π΄Π°Π½Π½Ρ‹Ρ… рСгистра, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ слоТной Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

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

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ срСза послСдних

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

Анализ ΠΏΠ»Π°Π½ΠΎΠ² выполнСния ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

Для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ срСзом послСдних, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния запроса. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· консоль запросов ΠΈΠ»ΠΈ тСхнологичСский ΠΆΡƒΡ€Π½Π°Π» (Π’Π–). Анализ ΠΏΠ»Π°Π½Π° позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ индСкс, происходит Π»ΠΈ сортировка Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠ°ΠΊΠΎΠ²Π° ΠΎΡ†Π΅Π½ΠΊΠ° стоимости ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Clustered Index Scan ΠΈΠ»ΠΈ Table Scan. Π˜Ρ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΏΠ»Π°Π½Π΅ выполнСния запроса ΠΊ срСзу послСдних ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с индСксациСй ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ написанный запрос. Π˜Π΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ»Π°Π½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Index Seek, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ говорят ΠΎ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ.

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ систСма выполняСт Π΄ΠΎΡ€ΠΎΠ³ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ сортировки (Sort) ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, совпадаСт Π»ΠΈ порядок ΠΏΠΎΠ»Π΅ΠΉ Π² индСксС с порядком, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Иногда нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ порядка ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΊΠ»ΡŽΡ‡Π΅ записи рСгистра ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² сортировкС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ Π² индСксС ΡƒΠΆΠ΅ хранятся Π² Π½ΡƒΠΆΠ½ΠΎΠΌ порядкС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ»Π°Π½Ρ‹ выполнСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π‘Π£Π‘Π”. ПослС измСнСния индСксов ΠΈΠ»ΠΈ статистики ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сбрасывайтС кэш ΠΏΠ»Π°Π½ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ запроса.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС срСдства профилирования 1Π‘ для Π·Π°ΠΌΠ΅Ρ€Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния запроса Π² миллисСкундах. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎ ΠΈ послС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€” СдинствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ способ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ внСсСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НС ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° тСорСтичСскиС Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΈ, Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ скрытыС ΡƒΠ·ΠΊΠΈΠ΅ мСста.

Π‘Π΅ΠΊΡ€Π΅Ρ‚ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

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

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… устранСния

Одной ΠΈΠ· самых распространСнных ошибок являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ срСз послСдних ΠΏΠΎ рСгистру, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ Π·Π°Π΄Π°Π½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡŽΡ‡ записи. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅, выполняСт Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ, возвращая Π½Π΅ Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ВсСгда провСряйтС свойства рСгистра ΠΏΠ΅Ρ€Π΅Π΄ использованиСм Π΅Π³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†.

Другая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° «УсловиС» Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ срСза. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ просто Π½Π° Π΄Π°Ρ‚Ρƒ, Π° с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ складу), эти условия Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ…. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π½Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ эти условия послС получСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² основном запросС сниТаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ срСз Π±ΡƒΠ΄Π΅Ρ‚ построСн ΠΏΠΎ всСй Π±Π°Π·Π΅, Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ постфактум.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ измСрСния ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅, Π½ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΡ‚ΠΎΠ³ΠΎΠ², срСз послСдних ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ пустыС значСния ΠΈΠ»ΠΈ ошибки прСобразования Ρ‚ΠΈΠΏΠΎΠ². ΠšΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… β€” Π·Π°Π»ΠΎΠ³ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² срСза.

πŸ’‘

Π“Π»Π°Π²Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄: ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ срСза послСдних Π½Π° 90% зависит ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ проСктирования ΠΊΠ»ΡŽΡ‡Π° записи рСгистра свСдСний ΠΈ наличия условия ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ Π² запросС.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ… ΠΈ Π‘Ρ€Π΅Π·ΠŸΠ΅Ρ€Π²Ρ‹Ρ…?

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½, Ρ€Π°Π·Π½ΠΈΡ†Π° лишь Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Π²Ρ‹Π±ΠΎΡ€Π° записи. Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ… Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ запись с максимальной Π΄Π°Ρ‚ΠΎΠΉ, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ. Π‘Ρ€Π΅Π·ΠŸΠ΅Ρ€Π²Ρ‹Ρ… Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ запись с минимальной Π΄Π°Ρ‚ΠΎΠΉ, Π½Π΅ мСньшСй Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ бизнСс-Π·Π°Π΄Π°Ρ‡ΠΈ: Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ состояниС Β«Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Β» ΠΈΠ»ΠΈ «начиная с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Β».

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз послСдних для рСгистров накоплСния?

НСт, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ срСза послСдних ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для рСгистров свСдСний. Для рСгистров накоплСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ свои Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ, ΠžΠ±ΠΎΡ€ΠΎΡ‚Ρ‹ ΠΈ ΠžΡΡ‚Π°Ρ‚ΠΊΠΈΠ˜ΠžΠ±ΠΎΡ€ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ запрос ΠΊ срСзу послСдних Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π½Π° большой Π±Π°Π·Π΅?

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

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ срСз послСдних Π±Π΅Π· указания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹?

МоТно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄Π°Ρ‚Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠšΠžΠΠ•Π¦ΠŸΠ•Π Π˜ΠžΠ”Π(Π”ΠΠ’ΠΠ’Π Π•ΠœΠ―()) ΠΈΠ»ΠΈ просто Π’Π•ΠšΠ£Π©ΠΠ―Π”ΠΠ’Π(). Однако это заставит систСму ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡΠ°ΠΌΡƒΡŽ послСднюю запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рСсурсоСмко. Π›ΡƒΡ‡ΡˆΠ΅ всСгда ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ поиска, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π»ΠΎΠ³ΠΈΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

ВлияСт Π»ΠΈ количСство рСсурсов рСгистра Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ срСза?

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ рСсурсов влияСт Π½Π° объСм ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° скорости поиска Π½ΡƒΠΆΠ½ΠΎΠΉ записи (Index Seek). ОсновноС врСмя тратится Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ индСксу ΠΈ поиск Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°. Однако Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° дСсятков ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… рСсурсов ΠΈΠ· ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² строк ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΊΠ°Π½Π°Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘Π£Π‘Π” ΠΈ сСрвСром 1Π‘.