4-amaliy ish bajardi: Suyarov Sharofiddin Qabul qildi: Qodirov. B



Yüklə 116,61 Kb.
tarix23.12.2022
ölçüsü116,61 Kb.
#77592
MAL BAZASI 4 AMALIY 3 MAVZU


O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH
VAZIRLIGI


MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
QARSHI FILIALI





KOMPYUTER INJERINING FAKULTETI II BOSQICH AX 11- 21 GURUH TALABASINING MALUMOTLAR BAZASI FANIDAN
4-AMALIY ISH

Bajardi: Suyarov Sharofiddin
Qabul qildi: Qodirov. B.

MAVZU:  SQL tilida INDEX yaratish. Tasavvur, VIEW yaratish va undan foydalanish.



1) Indeks tushunchasi Indeks Bir yoki bir nechta ustunlarning qiymatlari asosida jadval satrlariga tezkor kirishni ta'minlaydigan vositadir. Ushbu operatorda juda ko'p xilma-xillik mavjud, chunki u standartlashtirilmagan, chunki standartlar ishlash muammolariga murojaat qilmaydi. 2) Indekslarni yaratish INDEX yarating ON () 3) Indekslarni o'zgartirish va yo'q qilish Indeks faolligini boshqarish uchun quyidagi operator ishlatiladi: INDEX ALTER Indeksni o'chirish uchun operatordan foydalaning: INDEXNI DROP a) Jadvalni tanlash qoidalari 1. Jadvallarning 5 foizidan ko'p bo'lmagan jadvallarni indekslash tavsiya etiladi. 2. TANLANG bayonotining Qaerda aytilgan nusxasida nusxasi bo'lmagan indeks jadvallari. 3. Tez-tez yangilanadigan jadvallarni indeksatsiya qilish mantiqiy emas. 4. Ikki sahifadan oshmaydigan jadvallarni indekslash mantiqiy emas (Oracle uchun bu 300 satrdan kam), chunki uni to'liq ko'rib chiqish uzoq davom etmaydi. b) Ustunlarni tanlash qoidalari 1. Boshlang'ich va xorijiy tugmachalar ko'pincha jadvallarga qo'shilish, ma'lumotlarni olish va qidirish uchun ishlatiladi. Bu har doim maksimal foyda bilan noyob indekslardir 2. Ma'lumotlarning yaxlitlik parametrlaridan foydalanganda har doim FK-da indeks talab qilinadi. 3. Ko'pincha ma'lumotlarni saralash va / yoki guruhlash amalga oshiriladigan ustunlar. 4. TANLANISh bayonotining Qaerda qayerda qidirib topilgan ustunlar. 5. Uzun tavsifli ustunlarda indekslarni yaratmang. v) Murakkab indekslarni yaratish printsiplari 1. Agar individual ustunlar bir nechta noyob qiymatlarga ega bo'lsa, kompozit indekslar yaxshi bo'ladi va kompozit indeks yanada o'ziga xoslikni ta'minlaydi. 2. Agar SELECT ko'rsatmasi bilan tanlangan barcha qiymatlar kompozit indeksga tegishli bo'lsa, u holda qiymatlar indeksdan olinadi. 3. Agar WHERE gapida AND va operator bilan birlashtirilgan ikkita yoki undan ko'p qiymat ishlatilsa, kompozit indeks yarating. d) yaratish tavsiya etilmaydi Ustunlarda, shu jumladan kompozit indekslarni yaratish tavsiya etilmaydi: 1. Kamdan-kam hollarda so'rov natijalarini qidirish, birlashtirish va saralash uchun ishlatiladi. 2. Ular tez-tez o'zgarib turadigan qiymatlarni o'z ichiga oladi, bu esa indeksni tez-tez yangilab turishni talab qiladi, bu ma'lumotlar bazasi ishini sekinlashtiradi. 3. Kam miqdordagi noyob qiymatlarni (10% m / f dan kam) yoki bitta yoki ikkita qiymatga ega bo'lgan chiziqlar ustunligini o'z ichiga oling (etkazib beruvchining yashash joyi - Moskva). 4. Funktsiya yoki ibora WHERE so'zida ularga qo'llaniladi va indeks ishlamaydi. e) unutmang Siz indekslar sonini kamaytirishga harakat qilishingiz kerak, chunki ularning ko'pi ma'lumotlar yangilanish tezligini pasaytiradi. Shuning uchun MS SQL Server har bir jadvalga 16 tadan ko'p bo'lmagan indeks yaratishni tavsiya qiladi. Odatda, so'rovlar va ma'lumotlarning yaxlitligi uchun indekslar tuziladi. Agar indeks so'rovlar uchun ishlatilmasa, u o'chirilishi kerak va mos yozuvlar yaxlitligi triggerlardan foydalangan holda amalga oshirilishi kerak. Indekslar Oracle DBMS jadvalining satrlariga tezkor kirishni ta'minlash uchun ishlatiladi. Indekslar jadval satrlarining nisbatan kam sonini tanlash kerak bo'lganda operatsiyalar davomida ma'lumotlarga tezkor kirishni ta'minlaydi. Oracle jadvalda cheksiz sonli indekslarni berishga imkon beradi, indekslar faqat so'rovlarni tezlashtirish uchun ishlatilganda foydalidir. Aks holda, ular indekslangan ustunlarni yangilashda faqat joy egallaydi va server ish faoliyatini sekinlashtiradi. Sizning so'rovlaringizda indekslar qanday ishlatilishini aniqlash uchun BIZNING REJA (Rejalashtirish rejasi va statistika) xususiyatidan foydalanishingiz kerak. Ba'zan, indeks sukut bo'yicha ishlatilmasa, indeksdan foydalanish to'g'risida so'rovlarga murojaat qilishingiz mumkin. Jadval ma'lumotlarini kiritgandan so'ng indekslarni yarating Odatda indekslarni yaratmasdan oldin jadvalga ma'lumotlarni kiritasiz yoki yuklaysiz. Aks holda, indekslarni yangilashning qo'shimcha qiymati kiritish yoki yuklash operatsiyalarini sekinlashtiradi. Ushbu qoidadan faqat istisno - bu klasterli kalit indeksidir. U faqat bo'sh klaster uchun yaratilishi mumkin. Indekslarni yaratishda bo'sh joy muammosiga duch kelmaslik uchun vaqtinchalik jadval maydoniga o'ting Indeksni allaqachon o'z ichiga olgan jadvalda indeks yaratishda, Oracle tartiblash uchun qo'shimcha joy talab qiladi. Bunda indeks yaratuvchisiga ajratilgan xotira maydonlaridan foydalaniladi (har bir foydalanuvchi uchun ajratilgan miqdor SORT_AREA_SIZE boshlang'ich parametri bilan belgilanadi), bundan tashqari, Oracle server indeks yaratish paytida ajratilgan vaqtinchalik segmentlardan ma'lumotlarni tozalashi va o'zgartirishi kerak. Agar indeks juda katta bo'lsa, unda quyidagilarni bajarish tavsiya etiladi. CREATE TABLESPACE buyrug'idan foydalanib, yangi vaqtinchalik jadvallar jadvalini yarating. Ushbu yangi vaqtinchalik bo'sh joyni ALTER USER bayonotining TEMPORARY TABLESPACE parametrida ko'rsating. CREATE INDEX bayoni bilan indeks yarating. Ushbu jadval maydonini DROP TABLESPACE buyrug'i bilan yo'q qiling. Keyin asl jadval maydonini vaqtincha tiklash uchun ALTER USER buyrug'idan foydalaning. Indekslash uchun to'g'ri jadval va ustunlarni tanlang Indeks qachon yaratilishini aniqlash uchun quyidagi ko'rsatmalardan foydalaning. Agar siz katta jadvalda nisbatan kichik (15% dan kam) qatorlarni tez-tez tanlasangiz indeks yarating. Bu foiz jadvalni ko'rish tezligining nisbiy tezligiga va indeks tugmachasidagi satr ma'lumotlarini qay darajada taqsimlashga bog'liq. Ko'rish tezligi qanchalik yuqori bo'lsa, foiz past bo'ladi, qator ma'lumotlari qanchalik ko'p bo'lsa, foiz shuncha yuqori bo'ladi. Bir nechta jadvallarga qo'shilish samaradorligini oshirish uchun birlashmalarda qo'llaniladigan indeks ustunlari. Indekslar avtomatik ravishda birlamchi va noyob kalit asosida yaratiladi. Kichik jadvallarni indekslash kerak emas. Agar siz so'rovni bajarish vaqti sezilarli darajada oshganini ko'rsangiz, u katta ehtimollik bilan amalga oshirildi. Ba'zi ustunlar indekslash uchun aniq nomzodlardir. Ular quyidagi xususiyatlarga ega: ustunlardagi qiymatlar nisbatan noyobdir; qiymatlarning katta diapazoni (umumiy indekslar uchun mos); qiymatlarning kichik diapazoni (bit indekslari uchun mos); juda siyrak ustunlar (ko'plab aniqlanmagan, "bo'sh" qiymatlar), ammo so'rovlar asosan mazmunli qatorlar haqida. Bunday holda, barcha nolga teng keladigan taqqoslash afzal ko'riladi: Qaerda emas COL_X\u003e -9.99 * quvvat (10, 125) Qaerda COL_X YO'Q BO'LMAYDI Bu, chunki COL_X indeksidan foydalanadi (COL_X raqamli ustun deb faraz qilsangiz). Har bir jadval uchun indekslar sonini cheklang Indekslar qancha ko'p bo'lsa, jadvalni o'zgartirish uchun qo'shimcha xarajatlar shunchalik yuqori bo'ladi. Qator qo'shilganda yoki o'chirilganda, jadvaldagi barcha ko'rsatkichlar yangilanadi. Agar ustun yangilangan bo'lsa, unda qatnashadigan barcha indekslar ham yangilanishi kerak. Indekslar holatida, yangilanishlar paytida ishlashning pasayishi bilan solishtirganda, so'rovlar samaradorligini oshirishni muvozanatlashingiz kerak. Masalan, jadval birinchi navbatda o'qilishi mumkin bo'lsa, indekslardan keng foydalanish mumkin; ammo, agar jadval tez-tez yangilanadigan bo'lsa, indekslardan foydalanish minimal darajada saqlanishi kerak. Kompozit indekslarda ustun tartibini tanlang Garchi ustunlar CREATE INDEX bayonida istalgan tartibda ko'rsatilishi mumkin bo'lsa-da, CREATE INDEX bayonidagi ustunlar tartibi so'rovlarning bajarilishiga ta'sir qilishi mumkin. Umuman olganda, ishlatilishi mumkin bo'lgan ustunlar birinchi navbatda indeksda keltirilgan. Siz kompozit indeksni yaratishingiz mumkin (bir nechta ustunlardan foydalangan holda), bunday indeks ushbu indeksning barcha ustunlariga yoki faqat ayrimlariga so'rov qilish uchun ishlatilishi mumkin. Indeksdan to'g'ri foydalanish uchun statistikani to'plang Agar ma'lumotlar bazasi so'rovlarda ishlatiladigan jadvallar statistikasini to'plasa va saqlasa, indekslardan samaraliroq foydalanish mumkin. Siz CREATE INDEX bayonotidagi COMPUTE STATISTICS kalit so'zini ko'rsatib indeks yaratish paytida statistik ma'lumotlarni to'plashingiz mumkin. Ma'lumotlar doimiy ravishda yangilanib turishi va qiymatlarning taqsimlanishi o'zgarishi sababli, statistika DBMS_STATS.GATHER_TABLE_STATISTICS va DBMS_STATS.GATHER_SCHEMA_STATISTICS protseduralaridan foydalanib, vaqti-vaqti bilan yangilab turilishi kerak. Keraksiz indekslarni yo'q qiling Quyidagi hollarda indeks o'chiriladi: agar indeksdan foydalanish so'rovlar samaradorligini oshirmasa. Ushbu holat jadval juda kichik bo'lsa yoki jadvalda juda ko'p satrlar bo'lsa, lekin ular orasida faqat bir nechtasi indeks elementlari bo'lsa; agar sizning so'rovlaringizda indeks ishlatilmasa; agar indeks qayta tiklanishdan oldin tushsa. Indeks tushganda, indeks segmentining barcha qoldiqlari tegishli bo'lgan jadval maydoniga qaytariladi va ushbu jadval maydonidagi boshqa ob'ektlarga taqdim etiladi. Indekslar, ular qurilgan jadval yo'q qilinganida avtomatik ravishda tushiriladi. Yuqori mahsuldorlikka erishishning muhim usullaridan biri SQL Server indekslardan foydalanish hisoblanadi. Indeks jadvaldagi ma'lumotlar qatorlariga tez kirishni ta'minlab, so'rov jarayonini tezlashtiradi, xuddi kitobdagi indeks sizga kerakli ma'lumotlarni tezda topishga yordam beradi. Ushbu maqolada men ichidagi indekslar haqida qisqacha ma'lumot beraman SQL Server va ular ma'lumotlar bazasida qanday tashkil etilganligini va ma'lumotlar bazasi so'rovlarini tezlashtirishga qanday yordam berishini tushuntiring. Indekslar jadvallar va ko'rinishlardagi ustunlarda yaratiladi. Indekslar ushbu ustunlardagi qiymatlarga asoslanib ma'lumotlarni tezda topish usulini ta'minlaydi. Masalan, agar siz birlamchi kalitda indeks yaratib, keyin birlamchi kalit qiymatlaridan foydalangan holda ma'lumot qatorini qidirsangiz SQL Server avval indeks qiymatini topadi va keyin butun ma'lumotlar qatorini tezda topish uchun indeksdan foydalanadi. Indekssiz, jadvaldagi barcha satrlarni to'liq skanerlash (ko'rish) amalga oshiriladi, bu esa ishlashga sezilarli ta'sir ko'rsatishi mumkin. Siz jadval yoki ko'rinishning ko'p ustunlarida indeks yaratishingiz mumkin. Istisno asosan katta ob'ektlarni saqlash uchun ma'lumotlar turlari bo'lgan ustunlardir ( LOB), kabi rasm, matnyoki varchar (maksimal)... Bundan tashqari, ma'lumotlarni formatda saqlash uchun mo'ljallangan ustunlarda indekslarni yaratishingiz mumkin XML, ammo bu indekslar odatdagidan biroz farq qiladi va ularni ko'rib chiqish ushbu maqola doirasiga kirmaydi. Bundan tashqari, maqola berilmaydi ustun do'koniko'rsatkichlar. Buning o'rniga men ma'lumotlar bazalarida eng ko'p ishlatiladigan indekslarga e'tibor qarataman. SQL Server. Indeks tarkibiy qismda tashkil etilgan sahifalar, indeks tugunlari to'plamidan iborat - muvozanatli daraxt... Ushbu struktura tabiatda ierarxik bo'lib, rasmda ko'rsatilgandek, ierarxiyaning yuqori qismida va barg tugunlaridan boshlanadi:
Yüklə 116,61 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin