| 25 | | Избраните индекси се поставени на колони кои имаат значајна улога во функционирањето на системот, како што се статуси на жалби и казни, идентификатори за поврзување на табели и датуми на прекршоци. Со нивна помош базата на податоци може побрзо да ги пронајде потребните записи без да врши целосно скенирање на табелите, што е особено важно при работа со голем број податоци. |
| 26 | | |
| 27 | | Индексот idx_zalba_status овозможува побрзо филтрирање на жалбите според нивниот статус, додека индексите idx_zalba_korisnik_id и idx_zalba_prekrsok_id ја подобруваат ефикасноста на JOIN операциите помеѓу табелите Zalba, Korisnik и Prekrsok. |
| 28 | | |
| 29 | | Дополнително, индексот idx_prekrsok_storitel_embg го забрзува пребарувањето на прекршоци според сторителот, што е корисно при генерирање статистички извештаи за граѓаните со најголем број прекршоци. |
| 30 | | |
| 31 | | За финансиските анализи и следење на казните е имплементиран индексот idx_kazna_status, кој овозможува побрзо издвојување на платени и неплатени казни. Дополнително, индексот idx_prekrsok_datum го подобрува пребарувањето на прекршоците според датум и овозможува поефикасно генерирање на дневни, неделни и месечни извештаи. |
| | 31 | Бидејќи статусите во моделот се нормализирани и издвоени во посебни табели, индексите не се поставуваат директно на текстуална колона `status`, туку на foreign key колоните преку кои главните табели се поврзуваат со статус табелите. Затоа за жалбите се користи индекс на `status_zalba_id`, а за казните индекс на `status_kazna_id`. |
| | 32 | |
| | 33 | Индексот `idx_zalba_status_zalba_id` овозможува побрзо поврзување на табелата `Zalba` со табелата `StatusZalba`, додека индексот `idx_status_zalba_ime` овозможува пребарување според името на статусот, како `podnesena` или `vo_postapka`. |
| | 34 | |
| | 35 | Индексите `idx_zalba_korisnik_id` и `idx_zalba_prekrsok_id` ја подобруваат ефикасноста на JOIN операциите помеѓу табелите `Zalba`, `Korisnik` и `Prekrsok`. |
| | 36 | |
| | 37 | Дополнително, индексот `idx_prekrsok_storitel_embg` го забрзува пребарувањето на прекршоци според сторителот, што е корисно при генерирање статистички извештаи за граѓаните со најголем број прекршоци. |
| | 38 | |
| | 39 | За финансиските анализи и следење на казните е имплементиран индексот `idx_kazna_status_kazna_id`, кој овозможува побрзо издвојување на казни според нивниот статус преку поврзување со табелата `StatusKazna`. Дополнително, индексот `idx_status_kazna_ime` овозможува пребарување според името на статусот, како `platena` или `neplatena`. |
| | 40 | |
| | 41 | Индексот `idx_prekrsok_datum` го подобрува пребарувањето на прекршоците според датум и овозможува поефикасно генерирање на дневни, неделни и месечни извештаи. |
| | 42 | |
| 302 | | |
| 303 | | За овој поглед беше креиран индексот `idx_kazna_status`, бидејќи погледот филтрира казни според нивниот статус. |
| 304 | | |
| 305 | | Во овој случај, по креирањето на индексот не се добива подобрување на времето на извршување. Причината е што прашалникот дополнително филтрира според `kazna_id = 523`, а `kazna_id` е примарен клуч и PostgreSQL веќе користи индекс преку `kazna_pkey`. |
| 306 | | |
| 307 | | Затоа новиот индекс `idx_kazna_status` не е пресуден за овој конкретен прашалник. Бидејќи времето на извршување е околу 1.2 секунди, прашалникот сè уште се смета за прифатлив и не е потребна дополнителна оптимизација. |
| | 313 | За овој поглед беше креиран индексот `idx_kazna_status_kazna_id`, бидејќи погледот филтрира казни според нивниот статус. Бидејќи статусите се издвоени во посебна табела `StatusKazna`, индексот се поставува на foreign key колоната `status_kazna_id` во табелата `Kazna`. |
| | 314 | |
| | 315 | Дополнително може да се користи и индексот `idx_status_kazna_ime` врз колоната `ime` во табелата `StatusKazna`, доколку погледот или прашалникот пребарува според текстуалното име на статусот, како `neplatena`. |
| | 316 | |
| | 317 | Во овој конкретен прашалник не се добива значително подобрување на времето на извршување, бидејќи прашалникот дополнително филтрира според `kazna_id = 523`, а `kazna_id` е примарен клуч и PostgreSQL веќе користи индекс преку `kazna_pkey`. |
| | 318 | |
| | 319 | Затоа индексот на статусот не е пресуден за овој конкретен прашалник, но е корисен за прашалници каде што се пребаруваат повеќе казни според статус, на пример сите неплатени казни. |
| | 320 | |