Π Π°Π±ΠΎΡ‚Π° с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… Π² систСмах 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто сталкиваСтся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ замСдлСния выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΆΠ°Π»ΡƒΡŽΡ‚ΡΡ Π½Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹, зависаниС Ρ„ΠΎΡ€ΠΌ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ 90% случаСв ΠΊΠΎΡ€Π΅Π½ΡŒ Π·Π»Π° кроСтся Π² Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ индСксации являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ для администраторов Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ часто остаСтся Π·Π°Π³Π°Π΄ΠΊΠΎΠΉ для рядовых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄Π°ΠΆΠ΅ программистов.

Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ β€” это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ создания ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… слуТСбных структур, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π‘Π£Π‘Π” Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ записи ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π½Π΅ пСрСбирая вСсь массив ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ подряд. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ огромная ΠΊΠ½ΠΈΠ³Π° Π±Π΅Π· оглавлСния. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π³Π»Π°Π²Ρƒ ΠΏΡ€ΠΎ "Π‘ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΡŽ", Π²Π°ΠΌ придСтся Π»ΠΈΡΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ страницу. ИндСкс β€” это Ρ‚ΠΎ самоС ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ½ΠΈΠ³ΠΈ.

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

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ индСксов Π² Π‘Π£Π‘Π”

ВСхничСски индСкс прСдставляСт собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² Π²ΠΈΠ΄Π΅ B-Π΄Π΅Ρ€Π΅Π²Π°), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ значСния ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° физичСскиС строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Когда Π²Ρ‹ запускаСтС запрос Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов Π‘Π£Π‘Π” Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ структуру индСксов ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивный ΠΏΡƒΡ‚ΡŒ получСния Π΄Π°Π½Π½Ρ‹Ρ….

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ индСкса Π½Π° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ катастрофичСскому падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ². НС удаляйтС систСмныС индСксы Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹.

πŸ“Š Как часто Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°ΠΌΠΈ Π² 1Π‘?
Π•ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ
Раз в нСдСлю
Π Π΅Π΄ΠΊΠΎ
Никогда Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π»

Π’ΠΈΠ΄Ρ‹ индСксов ΠΈ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Microsoft SQL Server, PostgreSQL ΠΈΠ»ΠΈ встроСнном Firebird, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘, сущСствуСт нСсколько Ρ‚ΠΈΠΏΠΎΠ² индСксов. ПониманиС ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ критичСски Π²Π°ΠΆΠ½ΠΎ для Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ³ΠΎ администрирования.

ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½Ρ‹ΠΉ индСкс опрСдСляСт физичСский порядок хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΠΎΠΉ индСкс, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ физичСски Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ отсортированы ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ создаСтся автоматичСски ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ (Primary Key). Π’ 1Π‘ это часто ΠΏΠΎΠ»Π΅ _RRef ΠΈΠ»ΠΈ счСтчик ссылок.

НСкластСрныС индСксы β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ структуры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π˜Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ. ИмСнно ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ускорСния поиска ΠΏΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ справочников ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². НапримСр, поиск ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π° ΠΏΠΎ ИНН ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Π΄Π°Ρ‚Π΅.

  • πŸ“‚ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ индСксы β€” Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π² столбцС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠΎΠ»Π΅ΠΉ с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Π°ΠΌΠΈ.
  • πŸ“‰ БоставныС индСксы β€” ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ нСскольким полям ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ Π² Ρ‚Π°ΠΊΠΎΠΌ индСксС ΠΈΠΌΠ΅Π΅Ρ‚ критичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для эффСктивности поиска.
  • πŸ” ΠŸΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ индСксы β€” содСрТат Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ позволяСт Π‘Π£Π‘Π” ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ основной Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° индСкса зависит ΠΎΡ‚ спСцифики Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Для ΠΏΠΎΠ»Π΅ΠΉ с высокой ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ (Π³Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²) индСксы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ идСально. Для ΠΏΠΎΠ»Π΅ΠΉ с Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ» "М/Π–" ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) созданиС индСкса часто бСсполСзно.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксами Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ 1Π‘

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ администраторы ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° процСсс индСксации нСпосрСдствСнно Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, рСгистры) сущСствуСт Π²ΠΊΠ»Π°Π΄ΠΊΠ° "Π˜Π½Π΄Π΅ΠΊΡΡ‹". Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° автоматичСского создания слуТСбных структур ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

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

ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ = Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅(Π’ΠΈΠΏ("Π”Π°Ρ‚Π°"));

Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€ = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€Ρ‹.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠšΠΎΠ΄Ρƒ("001");

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

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° индСксации Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°

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

Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ поиск ΡƒΠ·ΠΊΠΈΡ… мСст

Как ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² вашСй Π±Π°Π·Π΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ индСксов? ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π‘Π£Π‘Π”. Π’ MS SQL Server это Dynamic Management Views (DMV), Π² PostgreSQL β€” систСмныС прСдставлСния pg_stat_user_indexes.

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

Π’ΠΈΠΏ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π‘ΠΈΠΌΠΏΡ‚ΠΎΠΌ Π² Π’Π–/Π‘Π£Π‘Π” Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ дСйствиС
ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ индСкса Table Scan / Seq Scan Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс ΠΏΠΎ полям Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ
НСвСрный порядок ΠΏΠΎΠ»Π΅ΠΉ Index Scan вмСсто Seek ΠŸΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ составной индСкс, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² порядок ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ
ЀрагмСнтация ВысокоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Page Splits Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ пСрСстроСниС индСкса (Rebuild)
Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ статистика НСвСрный ΠΏΠ»Π°Π½ выполнСния ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ статистику распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ быстро Π½Π° Π±Π°Π·Π΅ с 1000 Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ‚ "Π»Π΅Ρ‡ΡŒ" Π½Π° Π±Π°Π·Π΅ с 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ записСй. РСгулярный Π°ΡƒΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½ΠΎΠΉ для ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ бизнСса.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ интСрфСйс инструмСнтов ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии Π‘Π£Π‘Π” (SQL Server 2016, 2019, PostgreSQL 13, 15 ΠΈ Ρ‚.Π΄.). ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ вашСй вСрсии Π‘Π£Π‘Π” ΠΏΠ΅Ρ€Π΅Π΄ внСсСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ фрагмСнтация индСкса?

ЀрагмСнтация Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Π² индСксС хранятся Π½Π΅ Π² физичСски сосСдних страницах диска. Π­Ρ‚ΠΎ заставляСт ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ диска (ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ SSD) ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ лишниС двиТСния, Ρ‡Ρ‚ΠΎ замСдляСт Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ. ЛСчится ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ REBUILD ΠΈΠ»ΠΈ REORGANIZE.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

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

Вторая ошибка β€” ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСлСктивности. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ индСкса ΠΏΠΎ полю "ВидНомСнклатуры", Π³Π΄Π΅ всСго 3 значСния (Π’ΠΎΠ²Π°Ρ€, Услуга, Π Π°Π±ΠΎΡ‚Π°), Π½Π΅ даст прироста скорости, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π‘Π£Π‘Π” всС Ρ€Π°Π²Π½ΠΎ придСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π˜Π½Π΄Π΅ΠΊΡΡ‹ эффСктивны Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΡ‚ΡΠ΅ΠΊΠ°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ 80-90% Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ составныС индСксы. Если Π²Ρ‹ часто Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΏΠΎ Π΄Π²ΡƒΠΌ полям ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ ΠΈ Π”Π°Ρ‚Π°), Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ составной индСкс, Ρ‡Π΅ΠΌ Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ…. Π­Ρ‚ΠΎ сэкономит мСсто Π½Π° дискС ΠΈ ускорит Ρ€Π°Π±ΠΎΡ‚Ρƒ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ "лСвостороннСго соотвСтствия" для составных индСксов. ИндСкс ΠΏΠΎ полям (A, B) ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ поискС ΠΏΠΎ A, ΠΈ ΠΏΠΎ A+B, Π½ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ поискС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ B.

ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° индСксов

Π˜Π½Π΄Π΅ΠΊΡΡ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ рСгулярного ΡƒΡ…ΠΎΠ΄Π°. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π² процСссС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π°Π·Ρ‹ (вставка, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ записСй), структура индСкса Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΡƒΠ΅Ρ‚. ΠŸΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ пустыС страницы, Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ логичСская ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ явлСниС называСтся Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

Для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с этим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ Π½ΠΎΡ‡Π½ΠΎΠ΅ врСмя ΠΈΠ»ΠΈ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅, ΠΊΠΎΠ³Π΄Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° Π±Π°Π·Ρƒ минимальна, слСдуСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты пСрСстроСния индСксов. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π· это ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π· Π² мСсяц, для высоконагруТСнных β€” СТСнСдСльно ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ.

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

πŸ’‘

РСгулярноС обслуТиваниС индСксов (Rebuild/Reorganize) ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ статистики β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° для поддСрТания высокой скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· SQL, минуя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€?

ВСхничСски это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ CREATE INDEX Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Π‘Π£Π‘Π”. Однако это Π½Π΅ рСкомСндуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ этот индСкс, считая Π΅Π³ΠΎ лишним, ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ВсС измСнСния Π»ΡƒΡ‡ΡˆΠ΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.

ВлияСт Π»ΠΈ индСксация Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…?

Π”Π°, индСксы Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ дисковоС пространство. Π’ срСднСм, Π½Π°Π±ΠΎΡ€ индСксов ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° 20-50% ΠΎΡ‚ объСма самих Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Π° Π·Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ индСксы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго?

Π’ MS SQL Server ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ динамичСскоС прСдставлСниС sys.dm_db_index_usage_stats. Оно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ количСство сканирований, поисков ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ индСкса. Π˜Π½Π΄Π΅ΠΊΡΡ‹ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ использованиСм ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅.

НуТно Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгистры свСдСний?

Π”Π°, Ссли ΠΏΠΎ Π½ΠΈΠΌ часто строятся ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΎΡ‚Π±ΠΎΡ€Ρ‹. ОсобСнно Π²Π°ΠΆΠ½Ρ‹ измСрСния рСгистров. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ рСгистры свСдСний часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ составных индСксов, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΈ измСрСния, для быстрого срСза Π΄Π°Π½Π½Ρ‹Ρ….