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

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ индСксы для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ SQL-запросов, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ индСксации ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок, приводящих ΠΊ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°ΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ Π² Π΄Π΅Π±Ρ€ΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π° сосрСдоточимся Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π½Π°Π½ΠΈΠΉ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π°ΡˆΠΈΡ… Π±Π°Π·.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ физичСская структура индСксов

На физичСском ΡƒΡ€ΠΎΠ²Π½Π΅ индСкс прСдставляСт собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ MS SQL, PostgreSQL ΠΈΠ»ΠΈ Oracle), которая Ρ…Ρ€Π°Π½ΠΈΡ‚ упорядочСнныС значСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ссылки Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ строки Π΄Π°Π½Π½Ρ‹Ρ…. Когда 1Π‘ выполняСт запрос, Π‘Π£Π‘Π” сначала смотрит Π² этот Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΒ», Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ адрСса ΠΈ сразу ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, игнорируя ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… записСй. Π­Ρ‚ΠΎ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ подсистСму.

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ индСкса ΠΏΠΎ полю с Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «Пол» ΠΈΠ»ΠΈ Β«ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΠΈΒ», Π³Π΄Π΅ значСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ часто) часто бСсполСзно. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ индСкс, посчитав ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±Ρ…ΠΎΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΠΎΠ»Π΅Π΅ быстрым.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнт «Консоль запросов» для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ»Π°Π½ΠΎΠ² выполнСния. Π’Π°ΠΌ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈ систСма созданный Π²Π°ΠΌΠΈ индСкс ΠΈΠ»ΠΈ выполняСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ скан Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan).

Π’ΠΈΠΏΡ‹ индСксов Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅

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

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

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

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

πŸ“Š Какой Ρ‚ΠΈΠΏ индСкса Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Волько систСмныС
Π ΡƒΡ‡Π½Ρ‹Π΅ для справочников
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ для Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ²
БоставныС для ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ²

Настройка индСксации Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅

ΠŸΡ€ΠΎΡ†Π΅ΡΡ настройки начинаСтся Π² ΠΎΠΊΠ½Π΅ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Для справочников, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΠ»Π°Π½ΠΎΠ² счСтов доступна Π²ΠΊΠ»Π°Π΄ΠΊΠ° Β«Π˜Π½Π΄Π΅ΠΊΡΡ‹Β». Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² структуру. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ индСксом ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ полю ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΌ индСксом.

Для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ индСкса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ добавлСния Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° свойств. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ спискС доступных ΠΏΠΎΠ»Π΅ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π΅, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ планируСтся частый поиск. НапримСр, для справочника «НомСнклатура» Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поля «Артикул» ΠΈ Β«Π¨Ρ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄Β», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ поиск ΠΏΠΎ Π½ΠΈΠΌ вСдСтся постоянно.

Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° -> Π’ΠΊΠ»Π°Π΄ΠΊΠ° "Π˜Π½Π΄Π΅ΠΊΡΡ‹" -> Кнопка "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ" -> Π’Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИзмСнСниС структуры индСксов Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ эксклюзивного доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Ρ‹ΡˆΠ»ΠΈ ΠΈΠ· систСмы ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ индСксами.

β˜‘οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ измСнСнию индСксов

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

ВлияниС индСксов Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнная индСксация способна ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тяТСлых ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π² дСсятки Ρ€Π°Π·. Запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ ΠΏΠΎ 5-10 ΠΌΠΈΠ½ΡƒΡ‚, ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π·Π° нСсколько сСкунд. Π­Ρ‚ΠΎ достигаСтся Π·Π° счСт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π‘Π£Π‘Π” считываСт с диска минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ объСм Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ сканируСт Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

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

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π‘Π΅Π· индСкса Π‘ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ индСксом Π‘ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΠΈ индСксами
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска Низкая (сСкунды/ΠΌΠΈΠ½ΡƒΡ‚Ρ‹) Высокая (мс/сСкунды) Высокая
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ записи Высокая БрСдняя Низкая (Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°)
Π—Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ΅ мСсто МинимальноС Π£ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ΅ Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅

Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ слСдуСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ рСгулярно. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ тСхнологичСский ΠΆΡƒΡ€Π½Π°Π» (Π’Π–) 1Π‘ ΠΈΠ»ΠΈ срСдства ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Dynamic Management Views Π² MS SQL), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ запросы с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ Ρ‚Π°Π±Π»ΠΈΡ†. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ подскаТут, ΠΊΠ°ΠΊΠΈΡ… индСксов Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π² вашСй систСмС.

πŸ’‘

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ конфигурация индСксов достигаСтся ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ: ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов -> созданиС индСкса -> ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π·Π°ΠΌΠ΅Ρ€ скорости.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ обслуТиваниС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

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

Для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с этим явлСниСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ рСгулярно ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ обслуТиваниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ MS SQL Server для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ REORGANIZE ΠΈ REBUILD. ΠŸΠ΅Ρ€Π²Π°Ρ пСрСстраиваСт Π»ΠΈΡΡ‚ΡŒΡ индСкса Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, вторая создаСт индСкс Π·Π°Π½ΠΎΠ²ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС рСсурсов, Π½ΠΎ Π΄Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈ высокой стСпСни Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ Π½Π΅Ρ‚ встроСнной ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠŸΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ индСксы», эту Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ администратор Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”. РСкомСндуСтся Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автоматичСский скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ nightly (Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ) провСряСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ примСняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого процСсса ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ постСпСнному Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ пСрСстроСния (REBUILD) индСксов Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя. ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Ρ‘ Π½Π° Π½ΠΎΡ‡Π½ΠΎΠ΅ врСмя ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² MS SQL?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sys.dm_db_index_physical_stats. Запрос Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ индСкса. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅ 30%, рСкомСндуСтся REBUILD, Ссли ΠΎΡ‚ 5% Π΄ΠΎ 30% β€” REORGANIZE.

Анализ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° запросов с использованиСм индСксов

Как ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ваш индСкс? Π‘Π°ΠΌΡ‹ΠΉ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ β€” ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния запроса. Π’ консоли запросов 1Π‘ ΠΈΠ»ΠΈ Π² SQL Server Management Studio ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«Clustered Index ScanΒ» ΠΈΠ»ΠΈ Β«Table ScanΒ» Π½Π° большой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ оТидаСтся поиск ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, Π·Π½Π°Ρ‡ΠΈΡ‚, индСкс Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

Частой ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ игнорирования индСкса являСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ построСниС условия Π² запросС. НапримСр, Ссли индСкс построСн ΠΏΠΎ полю Β«Π”Π°Ρ‚Π°Β», Π° Π² условии запроса Π²Ρ‹ примСняСтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ этому полю (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π“ΠžΠ”(Π”Π°Ρ‚Π°) = 2026), ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π΅ смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс. Условия Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ «прямыми», Π±Π΅Π· ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Π΄ индСксируСмыми полями.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° порядок ΠΏΠΎΠ»Π΅ΠΉ Π² составном индСксС. Если индСкс создан ΠΏΠΎ полям (А, Π‘), Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ эффСктивСн для поиска ΠΏΠΎ А, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ (А + Π‘). Но для поиска Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ полю Π‘ этот индСкс бСсполСзСн. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ созданиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ порядка ΠΏΠΎΠ»Π΅ΠΉ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ.

πŸ’‘

ΠŸΡ€ΠΈ написании запросов ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π»Π΅Π²ΠΎΠΉ части условия сравнСния. ВмСсто `ЛСвая(Артикул, 3) = "АБВ"` ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ `Артикул >= "АБВ" И Артикул < "АБГ"`.

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс прямо Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, минуя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ 1Π‘?

ВСхничСски это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· SQL-запросы ΠΊ Π‘Π£Π‘Π”, Π½ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ рСкомСндуСтся. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ структуру ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ваши Ρ€ΡƒΡ‡Π½Ρ‹Π΅ измСнСния Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ. ВсС измСнСния структуры Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π½ΠΎΡΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€.

ВлияСт Π»ΠΈ количСство индСксов Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (.mdf)?

Π”Π°, сущСствСнно. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ индСкс Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ дисковоС пространство. На Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·Π°Ρ… с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ записСй Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° 20-40%. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ дискового пространства сСрвСра.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС создания индСкса ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ измСнилась?

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, статистика распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π£Π‘Π” устарСла. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° основС статистики. ПослС добавлСния индСкса ΠΈΠ»ΠΈ массовой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… стоит Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ статистики (UPDATE STATISTICS Π² SQL), Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвСр Β«ΡƒΠ²ΠΈΠ΄Π΅Π»Β» Π½ΠΎΠ²Ρ‹Π΅ возмоТности.

НуТно Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²?

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Ρ‚. Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ части часто Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ собствСнных индСксов Π² классичСском ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ 1Π‘, поиск ΠΏΠΎ Π½ΠΈΠΌ ΠΈΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· связь с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ‚ смысл, Ссли Π²Ρ‹ часто Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ строкам Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части нСзависимо ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π½ΠΎ это Ρ€Π΅Π΄ΠΊΠΈΠΉ сцСнарий.

УдаляСт Π»ΠΈ 1Π‘ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ индСксы автоматичСски?

НСт. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ частоту использования индСксов ΠΈ Π½Π΅ удаляСт ΠΈΡ… автоматичСски. Если Π²Ρ‹ создали индСкс, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ явно Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….