sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

SQL-Ex blog

Новости сайта «Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΡ SQL», ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹

Π’ΠΈΠΏΡ‹ индСксов SQL Server

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

РСшСниС

Π’Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΡƒΡ‡ΠΈ Π² SQL Server

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΡƒΡ‡Π° (heap) Π² SQL Server?

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

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ использованиС ΠΊΡƒΡ‡ΠΈ Π² SQL Server

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

НСдостатки ΠΊΡƒΡ‡ΠΈ Π² SQL Server

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

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис ΠΊΡƒΡ‡ΠΈ Π² SQL Server

ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ индСкс Π² SQL Server

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ кластСризованный индСкс?

ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ индСкс ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² индСкса Π² SQL Server. ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ индСкс сохраняСт индСксный ΠΊΠ»ΡŽΡ‡ Π² структурС B-Tree, наряду с фактичСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ листовом ΡƒΠ·Π»Π΅ индСкса. Π—Π°Π΄Π°Π½ΠΈΠ΅ кластСризованного индСкса Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π°Π½Π½ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ структуру ΠΊΡƒΡ‡ΠΈ, которая ΠΎΠΏΠΈΡΡ‹Π²Π°Π»Π°ΡΡŒ Π²Ρ‹ΡˆΠ΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ столбцы) ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° листовых ΡƒΠ·Π»Π°Ρ… индСксной структуры, Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ кластСризованный индСкс.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ использованиС кластСризованного индСкса

НаличиС кластСризованного индСкса Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π΅ приносит ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·Ρ‹, Π½ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ прСимущСством являСтся ускорСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ запроса. Запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат столбцы ΠΊΠ»ΡŽΡ‡Π° индСкса Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ WHERE, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ структуру индСкса для прямого доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ индСкс Ρ‚Π°ΠΊΠΆΠ΅ устраняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² лишнСм поискС для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… столбцов Π² запросах Π½Π° основС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡Π° индСкса. Π­Ρ‚ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π½Π΅ справСдливо для индСксов Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ нСобходимости ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Если ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ORDER BY запроса основываСтся Π½Π° значСниях ΠΊΠ»ΡŽΡ‡Π° индСкса, Ρ‚ΠΎ сортировка Π½Π΅ потрСбуСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ упорядочСны ΠΏΠΎ этим значСниям.

НСдостатки кластСризованного индСкса

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΠΏΠ°Ρ€Π° нСдостатков, связанных с кластСризованными индСксами. Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ индСксной структурой, связанныС с Π»ΡŽΠ±Ρ‹ΠΌΠΈ опСрациями DML (INSERT, UPDATE, DELETE). Π­Ρ‚ΠΎ особСнно справСдливо, Ссли Π²Ρ‹ обновляСтС фактичСскиС значСния ΠΊΠ»ΡŽΡ‡Π° Π² индСксС, Ρ‚.ΠΊ. Π² этом случаС всС связанныС Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ хранятся Π½Π° листовом ΡƒΠ·Π»Π΅ записи индСкса. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ случаС это ΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ влияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго DML-запроса.

Основной синтаксис кластСризованного индСкса Π² SQL Server

НСкластСризованный индСкс Π² SQL Server

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ нСкластСризованный индСкс?

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ использованиС нСкластСризованных индСксов

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° нСкластСризованного индСкса ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ упомянутым Π²Ρ‹ΡˆΠ΅ прСимущСствам кластСризованного. Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это ускорСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ запроса. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΡ‚ΡŒ Π΄Π²Π° отличия. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ мноТСство нСкластСризованных индСксов, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ столбцы, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ запросам с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ столбцами Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ WHERE Π±ΠΎΠ»Π΅Π΅ быстро ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСобходимости сортировки, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ORDER BY. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, хотя ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π² обслуТивании нСкластСризованных индСксов ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² DML, ΠΎΠ½ΠΈ мСньшС, Ρ‡Π΅ΠΌ для кластСризованного индСкса.

НСдостатки нСкластСризованного индСкса

Π“Π»Π°Π²Π½Ρ‹ΠΌ нСдостатком, ΠΊΠ°ΠΊ ΠΈ для кластСризованного индСкса, являСтся избыточная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, трСбуСмая для поддСрТания индСкса ΠΏΡ€ΠΈ опСрациях DML. Иногда ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов, Ссли Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΠ΅Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ нСкластСризованных индСксов. Помогая всСм запросам Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ, ΠΎΠ½ΠΈ, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов DML.

Основной синтаксис нСкластСризованного индСкса Π² SQL Server

Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния Π² SQL Server

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСкс ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния?

ΠŸΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ индСкс являСтся Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ нСкластСризованного индСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ хранСния Π½Π° Π±Π°Π·Π΅ столбца для индСксирования Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ кластСризованными, Ρ‚Π°ΠΊ ΠΈ нСкластСризованными.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ использованиС ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ индСкса

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

НСдостатки индСксов ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния

Как ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ возмоТности, ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСдостатки ΠΏΡ€ΠΈ использовании ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹Ρ… индСксов. Они Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ со всСми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: Ρ‚ΠΈΠΏΡ‹ varchar(max)/nvarchar(max), xml ΠΈ text/ntext, image ΠΈ CLR Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² индСксах ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ рСпликация, сбор Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ± измСнСниях ΠΈΠ»ΠΈ отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π§Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, хотя запросы SELECT ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ большоС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅, это Π½Π΅ относится ΠΊ опСрациям DML. Π’ силу Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов, связанных с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ индСкса, Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ DML Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΈΡ… построчныС Π°Π½Π°Π»ΠΎΠ³ΠΈ. НаконСц, хотя это ΡƒΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ послСднСй вСрсиСй SQL Server, Π½ΠΎ Π΄ΠΎ SQL Server 2014 индСксы ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ хранСния Π½Π΅ Π±Ρ‹Π»ΠΈ обновляСмыми, поэтому Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ индСкса Π΄Π΅Π»Π°Π»ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ доступной Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.

Основной синтаксис ΠΏΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹Ρ… индСксов Π² SQL Server

XML индСксы Π² SQL Server

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ XML индСкс?

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

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ использованиС индСкса XML

Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΈΠ· использования XML индСкса, ΠΊΠΎΠ³Π΄Π° XML значСния столбца Π²Π΅Π»ΠΈΠΊΠΈ, Π½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Π΅ части ΠΌΠ°Π»Ρ‹. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ всСго XML значСния Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ парсинга для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса. ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ XML индСкс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ‚Π΅Π³ΠΈ, значСния ΠΈ ΠΏΡƒΡ‚ΠΈ вашСго столбца XML ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ скалярныС значСния ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ XML. Π’Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Π΅ индСксы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π’Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹ΠΉ XML-индСкс PATH Π²Ρ‹Π³ΠΎΠ΄Π΅Π½, Ссли ваши запросы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ выраТСния ΠΏΡƒΡ‚ΠΈ. Если ваши запросы Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π² XML значСниях, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹ΠΉ XML-индСкс VALUE ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ эти запросы. Запросы, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° значСния извСстСн, ΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ value() Ρ‚ΠΈΠΏΠ° XML, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСимущСство с индСксом PROPERTY.

НСдостатки XML индСксов

Π“Π»Π°Π²Π½Ρ‹ΠΌ нСдостатком ΠΏΡ€ΠΈ использовании XML индСксов являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большоС количСство дискового пространства, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π΅Π³ Π² XML Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ создаСт мноТСство строк Π² индСксС. Как ΠΈ для всСх индСксов, здСсь Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ/ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π½ΠΈΠΈ индСкса, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ DML Π½Π° XML столбцС.

Основной синтаксис индСкса XML Π² SQL Server

ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹Π΅ индСксы Π² SQL Server

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ полнотСкстовый индСкс?

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

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ использованиС полнотСкстового индСкса

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ полнотСкстового поиска с созданиСм индСксов Π½Π° столбцах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСксов стандартных Ρ‚ΠΈΠΏΠΎΠ². Π’ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ полнотСкстовых индСксов ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большиС столбцы varchar(max) ΠΈ nvarchar(max), Π° Ρ‚Π°ΠΊΠΆΠ΅ столбцы Π»ΡŽΠ±Ρ‹Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…: char, varchar, nchar, nvarchar, text, ntext, image, xml ΠΈ FILESTREAM. ПослС создания индСкса Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ индСксный поиск, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ полнотСкстовых запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, связанныС с Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… условий.

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

НСдостатки полнотСкстовых индСксов

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ нСдостатков использования полнотСкстовых индСксов связано с ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ рСсурсов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ поиск Π² полнотСкстовом индСксС выполняСтся слуТбой MSFTESQL, Π° Π½Π΅ слуТбой SQL Server, эти Π΄Π²Π΅ слуТбы ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° рСсурсы Π½Π° вашСм сСрвСрС. Если Π½Π΅ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ эти Π΄Π²Π΅ слуТбы, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, хотя дисковоС пространство становится всС Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΌ с Π³ΠΎΠ΄Π°ΠΌΠΈ, всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, связанная с количСством ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° для Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, поэтому для ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ дискС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π²Π΅ слуТбы (SQL Server ΠΈ MSFTESQL) Π½Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π·Π° этот рСсурс.

Основной синтаксис полнотСкстового индСкса Π² SQL Server

Π’Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ индСксов Π² SQL Server

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² индСкс столбцы

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

ИндСкс Π½Π° Π±Π°Π·Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SQL Server (вычисляСмыС столбцы)

Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π½Π° основС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π° значСниях, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ ряду столбцов. К соТалСнию, SQL Server Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ нСпосрСдствСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ индСксов Π½Π° Π±Π°Π·Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ вычисляСмых столбцов. ЕдинствСнным Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ возмоТности создания индСкса Π½Π° вычисляСмом столбцС являСтся Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ вычисляСмого столбца. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π€ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ индСкс Π² SQL Server

ΠŸΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ индСкс SQL Server

ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ индСксов Π² SQL Server

Π₯отя индСксы Ρ…ΠΎΡ€ΠΎΡˆΠΈ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ обслуТивания для поддСрТания ΠΈΡ… ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Бпустя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя послС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² INSERT, UPDATE ΠΈ DELETE Π½Π° вашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅, связанныС с Π½Π΅ΠΉ индСксы ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΡŽΡΡŽΡ‚ Π½Π° Ρ‚ΠΎ, насколько быстро индСкс становится Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Π½ΠΎ ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько встроСнных Π² SQL Server инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°ΠΆΡƒΡ‚ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ индСкса. ДинамичСскоС прСдставлСниС sys.dm_db_index_physical_stats даст Π²Π°ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ статистику Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΡ… Π²Π°ΡˆΠΈΡ… индСксов. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ запрос ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован ΠΊΠ°ΠΊ исходная Ρ‚ΠΎΡ‡ΠΊΠ° Π² спискС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π²Π°ΡˆΠΈΡ… индСксов. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° послСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, SAMPLED. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ опрСдСляСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ сканирования ΠΏΡ€ΠΈ сборС статистики индСкса. Π― ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ SAMPLED, Ρ‚.ΠΊ. Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ систСм, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ, довольно большиС, Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ DEFAULT, NULL, LIMITED, DETAILED.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π²Π°ΡˆΠΈΡ… индСксов, Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° для Π΅Ρ‘ устранСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ REORGANIZE (Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс) Π»ΠΈΠ±ΠΎ REBUILD (ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ индСкс). ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ссли ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΅ 10%, ΠΎΡ‚ 10% Π΄ΠΎ 30% ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ REORG, Π° ΡΠ²Ρ‹ΡˆΠ΅ 30% ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ (REBUILD). Π­Ρ‚ΠΈ числа Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ Π½Π° основС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚Ρ€ΠΎΠ΅ трСбуСтся для выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. REBUILD создаСт Π½ΠΎΠ²Ρ‹ΠΉ индСкс с нуля, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ REORGпросто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ устранСниСм Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ИндСкс с нСбольшой Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ довольно быстро. Но ΠΊΠΎΠ³Π΄Π° фрагмСнтация ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 30%, индСкс ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСстроСн Π·Π° Ρ‚ΠΎ ΠΆΠ΅ врСмя, Ρ‡Ρ‚ΠΎ ΠΈ REORG, поэтому ΠΈΠΌΠ΅Π΅Ρ‚ смысл просто ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Π’ΠΎΡ‚ ΠΎΠ½ΠΈ.

REBUILDREORG
трСбуСтся достаточно пространства для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ индСксаработаСт Π½Π° мСстС, поэтому Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ пространства Π½Π΅ трСбуСтся
Ссли процСсс прСрываСтся, трСбуСтся Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΡΡ с Ρ‚ΠΎΠ³ΠΎ мСста, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ процСсс прСрвался
ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ офлайнвсСгда выполняСтся ΠΎΠ½Π»Π°ΠΉΠ½
Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ большС записСй Π² ΠΆΡƒΡ€Π½Π°Π», Ρ‡Π΅ΠΌ reorgзаписываСт Π² ΠΆΡƒΡ€Π½Π°Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹
статистика обновляСтся автоматичСскиобновлСниС статистики Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ссылки

НСт ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ссылок

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Как список | Π”Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структурой

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Ρ‹ индСксов Π² Microsoft SQL Server

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Microsoft SQL Server ΠΊΠ°ΠΊ индСксы, Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ индСксов Π±Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΈΡ… ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

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

Π’ΠΈΠΏΡ‹ индСксов Π² Microsoft SQL Server

Π’ Microsoft SQL Server ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ индСксов:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ индСксов Π² Microsoft SQL Server

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅! Π’ качСствС SQL сСрвСра Ρƒ мСня выступаСт вСрсия Microsoft SQL Server 2016 Express.

БозданиС индСксов

Для создания индСксов Π² Microsoft SQL Server сущСствуСт Π΄Π²Π° способа: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ – это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ графичСского интСрфСйса срСды SQL Server Management Studio (SSMS), ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ – это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка Transact-SQL, ΠΌΡ‹ с Π’Π°ΠΌΠΈ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΎΠ±Π° способа.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° с Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ TestTable, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ столбца:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания кластСризованного индСкса

Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», кластСризованный индСкс создаСтся автоматичСски, Ссли ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ столбСц Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° (PRIMARY KEY), Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ этого Π½Π΅ сдСлали, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ создания кластСризованного индСкса.

Для создания кластСризованного индСкса ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΈ Ρ‚Π΅ΠΌ самым кластСризованный индСкс Π±ΡƒΠ΄Π΅Ρ‚ создан автоматичСски ΠΈΠ»ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ кластСризованный индСкс ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ просто создадим кластСризованный индСкс, Π±Π΅Π· создания ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Π‘Π½Π°Ρ‡Π°Π»Π° сдСлаСм это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Management Studio.

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ SSMS ΠΈ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ Ρ‰Π΅Π»ΠΊΠ°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ Β«Π˜Π½Π΄Π΅ΠΊΡΡ‹Β», Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс» ΠΈ Ρ‚ΠΈΠΏ индСкса, Π² нашСм случаС Β«ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΒ».

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ° «Новый индСкс», Π³Π΄Π΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Π½ΠΎΠ²ΠΎΠ³ΠΎ индСкса (ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹), Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ этот индСкс ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ссли ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ Ρ‚ΠΎΠ²Π°Ρ€Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ столбСц (ΠΊΠ»ΡŽΡ‡ индСкса), Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ создан кластСризованный индСкс, Ρ‚.Π΅. Π±ΡƒΠ΄ΡƒΡ‚ отсортированы строки Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ».

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

ПослС Π²Π²ΠΎΠ΄Π° всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΆΠΌΠ΅ΠΌ «ОК», Π² ΠΈΡ‚ΠΎΠ³Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создан кластСризованный индСкс.

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ кластСризованный индСкс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ T-SQL CREATRE INDEX, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ

Или, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ создания ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания нСкластСризованного индСкса с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ столбцами

БСйчас Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания нСкластСризованного индСкса, ΠΏΡ€ΠΈ этом ΠΌΡ‹ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ столбцы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ, Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² индСкс. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π’Ρ‹ создаСтС индСкс для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ запроса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ индСкс ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π» запрос, Ρ‚.Π΅. содСрТал всС столбцы (это называСтся Β«ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ запроса»). Благодаря ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ запроса ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ всС значСния столбцов Π² индСксС, ΠΏΡ€ΠΈ этом Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ числу дисковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Но ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² индСкс Π½Π΅ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… столбцов Π²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° индСкса, Ρ‚.Π΅. для хранСния индСкса потрСбуСтся большС мСста Π½Π° дискС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ ΠΈ сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ INSERT, UPDATE, DELETE ΠΈ MERGE Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

ПослС открытия Ρ„ΠΎΡ€ΠΌΡ‹ «Новый индСкс» ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ индСкса, добавляСм ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ столбСц ΠΈΠ»ΠΈ столбцы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для нашСго тСстового случая Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ CategoryID.

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

Π”Π°Π»Π΅Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ столбцы» ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ» добавляСм столбцы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² индСкс, Π² нашСм случаС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ProductName.

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

На Transact-SQL это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ удалСния индСкса Π² Microsoft SQL Server

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ индСкс ΠΌΠΎΠΆΠ½ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ индСксу ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒΒ», Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ своС дСйствия Π½Π°ΠΆΠ°Π² «ОК».

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ DROP INDEX, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ инструкция DROP INDEX Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ индСксам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ созданы ΠΏΡƒΡ‚Π΅ΠΌ создания ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ PRIMARY KEY ΠΈ UNIQUE. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС для удалСния индСкса Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ALTER TABLE с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ DROP CONSTRAINT.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ индСксов Π² Microsoft SQL Server

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

Π’ ΠΊΠ°ΠΊΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ индСкса, Π° Π² ΠΊΠ°ΠΊΠΈΡ… пСрСстроСниС?

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

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС нас интСрСсуСт столбСц avg_fragmentation_in_percent, Ρ‚.Π΅. процСнтная доля логичСской Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΊ Π²ΠΎΡ‚, Microsoft Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚:

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

РСорганизация индСксов

РСорганизация индСкса – это процСсс Π΄Π΅Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ индСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ кластСризованных ΠΈ нСкластСризованных индСксов ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ ΠΈ прСдставлСниям, физичСски пСрСупорядочивая страницы ΠΊΠΎΠ½Ρ†Π΅Π²ΠΎΠ³ΠΎ уровня Π² соотвСтствии с логичСским порядком (слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ) ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ².

Для Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ индСкса ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ графичСский инструмСнт SSMS, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Transact-SQL.

РСорганизация индСкса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Management Studio

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

РСорганизация индСкса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Transact-SQL

ΠŸΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ индСксов

ΠŸΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ индСкса – это процСсс, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ происходит ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого индСкса ΠΈ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ фрагмСнтация устраняСтся.

Для пСрСстроСния индСксов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° способа.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ALTER INDEX с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ REBUILD. Π­Ρ‚Π° инструкция замСняСт ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ DBCC DBREINDEX. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для массового пСрСстроСния индСксов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ этот способ.

И Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ CREATE INDEX с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ DROP_EXISTING. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для пСрСстроСния индСкса с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ опрСдСлСния, Ρ‚.Π΅. добавлСния ΠΈΠ»ΠΈ удалСния ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… столбцов.

Π’ Management Studio Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для пСрСстроСния Ρ‚Π°ΠΊΠΆΠ΅ доступСн. ΠŸΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ индСксу Β«ΠŸΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΒ».

sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚. Π€ΠΎΡ‚ΠΎ sql Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксы ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚

На этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ основам индСксов Π² Microsoft SQL Server Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½, Ссли Вас интСрСсуСт SQL ΠΈ T-SQL, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠΎΠΈ видСокурсы ΠΏΠΎ T-SQL, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π’Ρ‹ «с нуля» Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с SQL ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм языка T-SQL Π² Microsoft SQL Server, ΡƒΠ΄Π°Ρ‡ΠΈ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *