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

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π±Π΅Π· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΎ бухгалтСрском ΡƒΡ‡Π΅Ρ‚Π΅ Π·Π° 2023 Π³ΠΎΠ΄, Π²Π°ΠΌ придСтся ΠΏΡ€ΠΎΠΉΡ‚ΠΈ вдоль ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ стСллаТа ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΡ€Π΅ΡˆΠΊΠΈ всСх ΠΈΠ·Π΄Π°Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Full Table Scan). ИндСкс ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³: Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ Π½Π΅ΠΌΡƒ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ стСллаТа ΠΈ ΠΏΠΎΠ»ΠΊΠΈ, ΠΈ сразу ΠΈΠ΄Π΅Ρ‚Π΅ ΠΊ Ρ†Π΅Π»ΠΈ. Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”, Π½ΠΎ управляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€.

Однако слСпоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксов ΠΊΠΎ всСм полям подряд β€” это Π³Ρ€ΡƒΠ±Π΅ΠΉΡˆΠ°Ρ ошибка, которая ΠΌΠΎΠΆΠ΅Ρ‚ Β«ΡƒΠ±ΠΈΡ‚ΡŒΒ» ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы ΠΏΡ€ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ…. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ индСкс влияСт Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для любого ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ спСциалиста ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ 1Π‘.

ЀизичСская ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° индСксов Π² Π‘Π£Π‘Π”

ВСхничСски индСкс прСдставляСт собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ»ΡƒΠΆΠ΅Π±Π½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…, которая Ρ…Ρ€Π°Π½ΠΈΡ‚ упорядочСнныС значСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ поля (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ) вмСстС с указатСлями Π½Π° физичСскиС строки Π² основной Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π’ контСкстС 1Π‘, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Microsoft SQL Server ΠΈΠ»ΠΈ PostgreSQL, созданиС индСкса ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ построСниС B-Π΄Π΅Ρ€Π΅Π²Π° (balanced tree). Π­Ρ‚Π° структура позволяСт Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° логарифмичСскоС врСмя O(log n), Π° Π½Π΅ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ O(n).

Когда Π²Ρ‹ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, справочник «НомСнклатура», ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сама Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ индСксы ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ автоматичСски. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это индСкс ΠΏΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ (_RefID) ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ ΠΈΠ»ΠΈ наимСнованию, Ссли это Π·Π°Π΄Π°Π½ΠΎ Π² свойствах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Но для слоТных Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ, особСнно Π² рСгистрах накоплСния, стандартных индСксов часто нСдостаточно.

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

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

ВсСгда Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ поля ΠΏΠ΅Ρ€Π΅Π΄ созданиСм индСкса. Если ΠΏΠΎΠ»Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ всСго 2-3 значСния Π² ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ… записСй, индСкс лишь Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π΅Π· ускорСния Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

ВлияниС индСксов Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи ΠΈ чтСния

Π—Π΄Π΅ΡΡŒ кроСтся Π³Π»Π°Π²Π½Ρ‹ΠΉ парадокс ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. ИндСкс β€” это ΠΏΠ°Π»ΠΊΠ° ΠΎ Π΄Π²ΡƒΡ… ΠΊΠΎΠ½Ρ†Π°Ρ…. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΎΠ½ критичСски ускоряСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ SELECT (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅), позволяя быстро Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ записи для ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ½ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ замСдляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ INSERT, UPDATE ΠΈ DELETE.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ происходит? ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ «РСализация Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈ услуг», систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ рСгистра, Π½ΠΎ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС связанныС с этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ индСксы. Если Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 10 индСксов, Ρ‚ΠΎ ΠΎΠ΄Π½Π° опСрация записи прСвращаСтся Π² 11 физичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (1 запись Π΄Π°Π½Π½Ρ‹Ρ… + 10 ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ структур B-Π΄Π΅Ρ€Π΅Π²Π°).

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

  • πŸš€ Π§Ρ‚Π΅Π½ΠΈΠ΅: УскоряСтся Π² дСсятки ΠΈ сотни Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ΄Π±ΠΎΡ€Π΅ ΠΏΠΎΠ»Π΅ΠΉ.
  • 🐒 Π—Π°ΠΏΠΈΡΡŒ: ЗамСдляСтся ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ количСству ΠΈ «вСсу» индСксов.
  • πŸ’Ύ ΠŸΠ°ΠΌΡΡ‚ΡŒ: Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ сСрвСра Π‘Π£Π‘Π”, вытСсняя Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· кэша.
πŸ“Š Π§Ρ‚ΠΎ для вашСй систСмы Π²Π°ΠΆΠ½Π΅Π΅?
БыстроС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
БыстроС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ²
РавномСрная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹
Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΈΠΊΠΎΠ²Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ…

Π’ΠΈΠΏΡ‹ индСксов ΠΈ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² 1Π‘

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

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

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

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ Π² составном индСксС ΠΈΠΌΠ΅Π΅Ρ‚ критичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ прСфикса гласит: Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ индСкс ΠΏΠΎ полям (А, Π‘, Π’), Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ ΠΏΠΎ А, ΠΏΠΎ (А+Π‘) ΠΈ ΠΏΠΎ (А+Π‘+Π’). Но ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ полю Π‘ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π’. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ самоС сСлСктивноС (ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅) ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚ΠΎΡΡ‚ΡŒ Π² индСксС ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

Π’ΠΈΠΏ индСкса ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ВлияниС Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π›ΡƒΡ‡ΡˆΠ΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Волько 1 ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ„ΠΈΠ·. порядок строк ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, частыС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ
НСкластСризованный Много (Π΄ΠΎ 249 Π² SQL Server) ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ структура с указатСлями Поля условий WHERE, JOIN, ORDER BY
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Много Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠšΠΎΠ΄Ρ‹ справочников, Π½ΠΎΠΌΠ΅Ρ€Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
ΠŸΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ (Covering) Много Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС поля запроса ИзбСТаниС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ основной Ρ‚Π°Π±Π»ΠΈΡ†Π΅
πŸ’‘

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² составном индСксС Π²Π°ΠΆΠ½Π΅Π΅, Ρ‡Π΅ΠΌ количСство самих ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ порядок свСдСт ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ индСкса ΠΊ Π½ΡƒΠ»ΡŽ.

Диагностика ΠΈ поиск Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… индСксов

Как ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² вашСй Π±Π°Π·Π΅ 1Π‘ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ индСксов? ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ сигналом всСгда слуТат ΠΆΠ°Π»ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°. Но для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ основным инструмСнтом являСтся ВСхнологичСский ΠΆΡƒΡ€Π½Π°Π» (Π’Π–) ΠΈ встроСнный ΠŸΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ запросов.

Запустив ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ запросы», Π²Ρ‹ смоТСтС ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ SQL-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся дольшС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€ΠΎΠ³Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1 сСкунда). ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΠ»Π°Π½ выполнСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ запроса Π² срСдС Π‘Π£Π‘Π” (SQL Server Management Studio ΠΈΠ»ΠΈ pgAdmin), Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Table Scan ΠΈΠ»ΠΈ Clustered Index Scan. Π­Ρ‚ΠΎ прямой сигнал ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всю Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² этом случаС являСтся созданиС индСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΡ€ΠΎΠ΅Ρ‚ поля, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² условиях соСдинСния (JOIN) ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ (WHERE). Однако Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны: ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов сам Β«Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚Β» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ индСкс. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ статистики распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π£Π‘Π”.


-- ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для обновлСния статистики Π² SQL Server

UPDATE STATISTICS [Π˜ΠΌΡΠ’Π°Π±Π»ΠΈΡ†Ρ‹] WITH FULLSCAN;

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

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

ЀрагмСнтация индСкса β€” это состояниС, ΠΊΠΎΠ³Π΄Π° логичСский порядок страниц индСкса Π½Π΅ совпадаСт с физичСским порядком Π½Π° дискС. Высокая фрагмСнтация (>30%) Ρ€Π΅Π·ΠΊΠΎ сниТаСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния. РСшСниС: пСрСстроСниС (REBUILD) ΠΈΠ»ΠΈ рСорганизация (REORGANIZE) индСкса.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ индСксирования Π² рСгистрах накоплСния

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

Частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ мноТСства ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Если Π²Ρ‹ часто строитС ΠΎΡ‚Ρ‡Π΅Ρ‚ Β«ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΏΠΎ ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌ ΠΈ НомСнклатурным Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΒ», Π° индСкс Π² рСгистрС ΠΏΡ€ΠΎΠ΄Π°ΠΆ стоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ «НомСнклатурС», Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ. Π’ этом случаС Π² свойствах рСгистра накоплСния Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π² индСкс ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ индСкс Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… «ИндСкс».

Π’Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ рСгистра. Для рСгистров с пСриодичСскими остатками структура индСксов слоТнСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ ΠŸΠ΅Ρ€ΠΈΠΎΠ΄. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° стоит ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² кластСризованном индСксС Ρ‚Π°ΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‡Ρ‚ΠΎ позволяСт быстро ΠΎΡ‚ΡΠ΅ΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π΄Π°Ρ‚Π°ΠΌ.

  • πŸ“… ΠŸΠ΅Ρ€ΠΈΠΎΠ΄: ΠŸΠΎΡ‡Ρ‚ΠΈ всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π² индСксС для рСгистров с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.
  • πŸ“¦ РСсурсы: Поля рСсурсов Ρ€Π΅Π΄ΠΊΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² индСксы, Ссли ΠΏΠΎ Π½ΠΈΠΌ Π½Π΅ ΠΈΠ΄Π΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ.
  • πŸ”— Бвязи: Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ для всСх ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ рСгистр соСдиняСтся со справочниками.

Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° индСксов

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ динамичСскиС прСдставлСния Π‘Π£Π‘Π” для поиска Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… индСксов. Если индСкс Π½Π΅ участвовал Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°Ρ… Π·Π° послСдний мСсяц, Π½ΠΎ ΠΏΡ€ΠΈ этом замСдляСт запись, Π΅Π³ΠΎ цСлСсообразно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π’ SQL Server для этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ прСдставлСниС sys.dm_db_index_usage_stats.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходах Π½Π° обслуТиваниС. Π˜Π½Π΄Π΅ΠΊΡΡ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ мСста Π½Π° дискС. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π°Π·Π°Ρ… (сотни Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ ΠΈ Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Ρ‹) индСксы ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎ 50-70% ΠΎΡ‚ объСма самих Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ инфраструктуры сСрвСра 1Π‘ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ расчСтС дискового пространства.

β˜‘οΈ Аудит индСксов ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ

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

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

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

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

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

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, статистика распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π£Π‘Π” устарСла. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ старый ΠΏΠ»Π°Π½ выполнСния, Π½Π΅ зная ΠΎ Π½ΠΎΠ²ΠΎΠΌ индСксС. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ статистики ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу Π‘Π£Π‘Π”. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, соотвСтствуСт Π»ΠΈ порядок ΠΏΠΎΠ»Π΅ΠΉ Π² индСксС условиям вашСго запроса.

ВлияСт Π»ΠΈ количСство индСксов Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования?

Π”Π°, косвСнно. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство индСксов ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дискС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ„Π°ΠΉΠ» Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ (Bak) Π±ΡƒΠ΄Π΅Ρ‚ большС, ΠΈ процСсс Π΅Π³ΠΎ создания ΠΈ записи Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒ Π·Π°ΠΉΠΌΠ΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

НуТно Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовыС поля (строки Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹)?

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