Bajarish samaradorligini oshirishda indekslarning roli Nazariy material


Download 20.34 Kb.
bet2/2
Sana26.02.2023
Hajmi20.34 Kb.
#1232450
1   2
Bog'liq
SQL operatorlarini bajarish samaradorligini oshirishda indekslarning roli

Klasterli bo'lmagan indeks
Klasterli bo'lmagan indeks jadvaldagi yozuvlar tartibiga hech qanday cheklovlar qo'ymaydi, shuning uchun bir xil jadvalda ko'plab klasterlanmagan indekslar yaratilishi mumkin, ammo bu indekslar klasterlangan indekslar bilan bir xil cheklovlarga ega:
Indeks 16 ta ustundan oshmasligi kerak;
Indeks kalitining maksimal hajmi 900 bayt.
Klastersiz indeksning barg darajasi kerakli ma'lumotlarga ko'rsatgichni o'z ichiga oladi. Agar jadval klasterlangan indeksga ega bo'lsa, klasterli bo'lmagan indeksning barg darajasi klasterlash kalitiga ishora qiladi. Agar klasterli indeks bo'lmasa, barg sahifalari jadvaldagi ma'lumotlar qatorlariga ishora qiladi.
Relyatsion indeksni yaratish uchun umumiy sintaksis:
INDEX indeks_nomini YARATING
ON<объект>(ustun [, ... n])
[ ; ]
Kompozit indeks
Kompozit indeks bir nechta maydonlar asosida yaratilishi mumkin. Bunday holda, yuqorida tavsiflangan cheklovlar amal qiladi. Agar indeks belgilangan o'lchamli maydonlarga qurilgan bo'lsa, bu maydonlar uzunligi yig'indisi ushbu 900 baytdan oshmasligi kerak, agar indeks o'zgaruvchan uzunlikdagi maydonlarga qurilgan bo'lsa, maksimal maydon o'lchamlari yig'indisi 900 baytdan oshishi mumkin. , lekin har bir yozuv uchun summalar qiymati 900 baytdan oshmasligi kerak. Masalan, jadvalda har biri 500 baytdan iborat ikkita o'zgaruvchan uzunlikdagi maydon mavjud. Agar ikkala maydon uzunligi yig'indisi 900 baytdan oshadigan yozuvlar bo'lmasa, SQL Server ushbu ikki maydon asosida kompozit kalit yaratish imkonini beradi. Shunisi e'tiborga loyiqki, (1-ustun, 2-ustun) uchun kompozit indeks (2-ustun, 1-ustun) dan, shuningdek, ushbu ikki maydon uchun alohida yaratilgan indekslardan farq qiladi.
Indeksning parchalanishi
Operatsion tizim fayllari takroriy yozish operatsiyalari tufayli vaqt o'tishi bilan qismlarga bo'linadi. Indekslar bo'linishi ham mumkin, ammo indeks parchalanishi faylning parchalanishidan farq qiladi.
Indeks yaratilganda, barcha indeks kalit qiymatlari indeks sahifalarida tartiblangan tarzda yoziladi. dan qatorni olib tashlashda SQL jadvallari Server indeks sahifasida "teshiklar" hosil qiluvchi indeksdagi tegishli yozuvni o'chirishi kerak. SQL Server bo'sh joyni qaytarmaydi, chunki indeksdagi "teshiklar" ni aniqlash va qayta ishlatish narxi juda yuqori. Agar asosiy jadvaldagi qiymat o'zgarsa, SQL Server yozuvni ko'rsatgich bilan boshqa joyga ko'chiradi, bu esa boshqa teshik hosil qiladi. Indeks sahifalari to'ldirilganda va sahifalash kerak bo'lganda, indeks parchalanishi yana sodir bo'ladi. Vaqt o'tishi bilan ma'lumotlar o'zgarishi sodir bo'lgan jadval indekslari bo'linadi.
Indeksning qanchalik bo'linishini nazorat qilish uchun to'ldirish omili deb ataladigan parametrdan foydalanish odatiy holdir. Parchalanishni bartaraf qilish uchun ALTER INDEX iborasidan ham foydalanishingiz mumkin. To'ldirish koeffitsienti indeks yaratilganda yoki qayta tiklanganda har bir barg darajasidagi sahifada ajratilgan bo'sh joy ulushini belgilaydigan indeks parametridir. Zaxira qilingan bo'sh joy qo'shimcha qiymatlarni keyinroq joylashtirish imkonini beradi, bu esa sahifa tanaffuslari sonini kamaytiradi. sahifa yaratilmoqda Barg darajasi kelajakka moslashish uchun 25% bo'sh joyga ega bo'lishi kerak.
Indeksni defragmentatsiya qilish
SQL Server tizimga bo'sh joyni qaytarmaganligi sababli, indeks dastlab yaratilgan unumdorlikni saqlab qolish uchun indeksdagi bo'sh joy vaqti-vaqti bilan bo'shatilishi kerak. Indekslarni defragmentatsiya qilish uchun ALTER INDEX iborasidan foydalaning.
ALTER INDEX (indeks_nomi | HAMMA)
ON

Download 20.34 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling