Сёння гаворка пойдзе пра азначніках СКБД MS SQL і іх ўнутраную прыладу. Я паспрабую распавесці аб азначніках і з пункту гледжання СКБД, і з пункту гледжання 1С 8.3.
Індэксы - набор спасылак, упарадкаваных па пэўных слупках, які ствараецца з мэтай аптымізацыі прадукцыйнасці СКБД MS SQL.
Індэксы ў 1С
У сістэме 1С індэксы ствараюцца двума спосабамі - відавочным і няяўнай чынам.
Стварэнне індэксаў няяўнай чынам:
Платформа стварае індэксы сама па загадзя вядомым для кожнага аб'екта метададзеных ключах дадзеных (спасылка, код, найменне, вымярэння і да т.п.)
Стварэнне індэксаў відавочнай выявай магчымая трыма спосабамі:
- Ўстаноўка сцяга «Індэксаваць» у поля (рэквізіту / вымярэння). Варыянт «Індэксаваць з доп. парадкаваннем »дадае ў індэкс полі« Код »або« Найменне »(перш за ўсё для дынамічных спісаў ).
- Даданне поля ў « крытэрыі адбору «.
- Указанне индексируемого поля ў запыт з дапамогай канструкцыі « індэксавацца ПА «.
Індэксы ў СКБД Microsoft SQL
Індэксы ў СКБД MS SQL ўяўляюць з сябе старонкі з дадзенымі па 8 Кбайт кожная. Нягледзячы на тое, што індэксы прызначаны палепшыць прадукцыйнасць СКБД, у іх ёсць пэўныя недахопы - яны займаюць месца на дыску і запавольваюць працу СКБД на запіс радкоў.
Віды індэксаў у СКБД MS SQL:
- Некластерные індэксы - такія індэксы ня перабудоўваюць табліцы, а толькі арганізуюць спасылкі.
- Кластарныя індэксы патрэбныя для пабудовы табліцы ў адпаведнасці з індэксам. Дадзеныя ўпарадкаваны, напрыклад, па алфавіце. Недапушчальны для часта зменлівых слупкоў, бо СКБД пастаянна фізічна перабудоўвае табліцу па гэтым індэксе.
- Унікальныя індэксы - свайго роду «надбудова» для кластарных і некластерных індэксаў. Такі індэкс унікальны па ключавым палях.
Віды ключоў у Беларусь палітычная
- Першасны ключ (primary) - набор слупкоў, унікальна характарызуюць радок.
- Знешні ключ (foreign) - поле табліцы, якое захоўвае значэнне першаснага ключа з мэтай арганізацыі сувязі паміж табліцамі. 1С не выкарыстоўвае гэты від ключоў.
Важныя нюансы выкарыстання індэксаў
Даўжыня ключа індэкса ў асноўных СКБД (усіх, акрамя файлавага варыянту) - не больш за 900 байт і 16 розных палёў.
Запускайце часцей дэфрагментацыю індэксаў на ўзроўні СКБД MS SQL: пры частым выкарыстанні індэксаў магчыма з'яўленне эфекту фрагментацыі, нельга дапускаць ўзроўню фрагментацыі вышэй за 25%.
Адсутнасць індэксаў можа прывесці да поўнага сканіраванні табліцы (table scan), што, у сваю чаргу, прывядзе да залішняй блакіроўцы.
Аднак не варта ўключаць індэксацыю па невялікіх наборам дадзеных (напрыклад, даведнік Арганізацыі) - пабудова індэкса можа прывесці да адваротнага эфекту, хуткадзейнасць знізіцца.