Tarkibga o'tish

031. Indekslar

Bu mavzuda B-tree, GIN, BRIN, partial va covering indekslar bo'yicha 20 ta masala bor. Har bir masala oldida qavs ichida sxema nomi va qiyinlik darajasi ko'rsatilgan. Sxemalar Sxemalar va tayyorlov sahifasida berilgan.

Masalani o'zingiz yechib, natijani Kutilgan natija bilan solishtiring. O'zgartiruvchi masalalarda (INSERT, UPDATE, DELETE, DDL) natija shartda aytilgan tekshiruv so'rovidan olingan. Natija 10 qatordan ko'p bo'lsa, birinchi 10 qator ko'rsatilgan.

1. (dokon, oson) mijoz.shahar ustuniga indeks yarating; indeks bor-yo'qligini pg_indexes dan tekshiring.

Kutilgan natija
mijoz_shahar_idx

2. (dokon, oson) UNIQUE indeks: mijoz.email ga UNIQUE indeks yarating va uni indisunique orqali tekshiring.

Kutilgan natija
t

3. (dokon, oson) Indeksni DROP INDEX bilan o'chiring (avval yarating); tekshiruv: indeks qolmaganini.

Kutilgan natija
0

4. (dokon, o'rta) Kompozit indeks: buyurtma(mijoz_id, sana). Indeks ustunlari sonini (indnatts) tekshiring.

Kutilgan natija
2

5. (dokon, o'rta) Partial indeks: faqat 'bekor' bo'lmagan buyurtmalar uchun (sana bo'yicha). Indeks ta'rifida WHERE bormi.

Kutilgan natija
t

6. (dokon, o'rta) Ifoda (expression) indeksi: LOWER(ism) bo'yicha. Indeks ta'rifida lower bormi.

Kutilgan natija
t

7. (dokon, o'rta) INCLUDE (covering) indeks: mahsulot(kategoriya_id) INCLUDE (narx). indnkeyatts va indnatts.

Kutilgan natija
1 | 2

8. (dokon, o'rta) Indeks turi: HASH indeks yarating (mijoz.shahar) va amname.

Kutilgan natija
hash

9. (dokon, qiyin) DESC indeks va NULLS: mahsulot(narx DESC NULLS LAST) indeksini yarating; ta'rifida DESC bormi.

Kutilgan natija
t

10. (dokon, qiyin) Indeks hajmi: indeks yaratib pg_relation_size 0 dan kattaligini tekshiring.

Kutilgan natija
t

11. (maktab, oson) oquvchi.sinf_id ga indeks. pg_indexes da sonini ko'rsating (PK bilan 2).

Kutilgan natija
2

12. (maktab, o'rta) baho(oquvchi_id, fan_id) kompozit indeksi; ustunlar tartibi: ta'rifini ko'rsating (ustun ro'yxati).

Kutilgan natija
(oquvchi_id, fan_id)

13. (maktab, qiyin) Partial UNIQUE indeks: telefon bo'yicha faqat NULL emaslar uchun. Indeksning unique va partialligini tekshiring.

Kutilgan natija
t | t

14. (bank, oson) hisob.mijoz_id ga indeks.

Kutilgan natija
hisob_mijoz

15. (bank, o'rta) BRIN indeks: tranzaksiya.sana bo'yicha; amname.

Kutilgan natija
brin

16. (bank, qiyin) Indeks ishlatilishi: seqscan o'chirib, hisob.mijoz_id=1 so'rovida indeks ishlatilishini plan matni bilan tekshiring (Index/Bitmap so'zi).

Kutilgan natija
t

17. (kutubxona, oson) kitob.muallif_id ga indeks.

Kutilgan natija
kitob_muallif

18. (kutubxona, o'rta) Partial indeks: qaytarilmagan ijaralar (qaytarilgan IS NULL) bo'yicha azo_id. Indeks WHERE bormi.

Kutilgan natija
t

19. (kutubxona, qiyin) Covering indeks bilan index-only scan: ijara(azo_id) INCLUDE (olingan), seqscan o'chirilgan, 'Index Only Scan' plan.

Kutilgan natija
t

20. (kutubxona, qiyin) Indeks ishlatilmasligi: funksiya ichidagi ustun LOWER(nom) uchun oddiy nom indeksi ishlamaydi, ifoda indeksi ishlaydi: ifoda indeksi yaratib planni tekshiring (seqscan off).

Kutilgan natija
t