033. Partitioning va VACUUM
Bu mavzuda jadvalni bo'laklash va autovacuum sozlamalari bo'yicha 11 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) RANGE partition: 'sotuv' (id, sana date) jadvalini sana bo'yicha partitsiyalang, 2024 va 2025 uchun ikki partitsiya yarating; partitsiyalar soni.
2. (dokon, o'rta) Qator qo'shilganda mos partitsiyaga tushishi: 2024 va 2025 sanali qatorlar; tableoid orqali qaysi partitsiyada (nom, soni).
3. (dokon, o'rta) LIST partition: 'mijoz_arxiv' shahar bo'yicha (Toshkent / boshqalar DEFAULT). Qatorlarni mijozdan ko'chirib, partitsiya bo'yicha soni.
4. (dokon, o'rta) HASH partition: 'log_h' (id int) MODULUS 2 bilan ikki partitsiya; 10 qator qo'shib, umumiy soni.
5. (dokon, qiyin) Partition pruning: EXPLAIN matnida faqat kerakli partitsiya (sotuv_2025) ko'rinadi, sotuv_2024 ko'rinmaydi.
6. (dokon, qiyin) DETACH PARTITION: sotuv_2024 ni ajratib, asosiy jadvaldagi partitsiyalar soni.
7. (bank, o'rta) Tranzaksiyalar oy bo'yicha partitsiya (RANGE, 2024-01 va 2024-02 va DEFAULT); mavjud ma'lumotni ko'chirib partitsiya bo'yicha sonlari.
8. (bank, o'rta) Autovacuum parametrlari: ALTER TABLE tranzaksiya SET (autovacuum_vacuum_scale_factor=0.05); reloptions ni ko'rsating.
9. (bank, qiyin) O'lik qatorlar: UPDATE dan keyin pg_stat_get_xact_tuples_updated orqali tranzaksiyada yangilangan qatorlar soni (hisob jadvali, hammasi).
10. (maktab, o'rta) fillfactor: ALTER TABLE baho SET (fillfactor=70); reloptions.
11. (kutubxona, qiyin) pg_stat_user_tables: ANALYZE kitob dan keyin jadvaldagi taxminiy qatorlar soni (reltuples) kitoblar soniga tengmi.