| 46 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 47 | | |
| 48 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| | 42 | [[Image(Contracts_per_Vendor_Execution_After_Indexing.png, 800px)]] |
| | 43 | |
| | 44 | [[Image(Contracts_per_Vendor_Scan_After_Indexing.png, 800px)]] |
| | 45 | |
| | 46 | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| | 47 | |
| | 48 | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| | 49 | |
| | 50 | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| | 51 | |
| | 52 | ---- |
| | 53 | |
| | 54 | == View2: Договори по клиент (vw_contracts_per_client) == |
| | 55 | |
| | 56 | '''1.''' Примарен филтер за погледот `vw_contracts_per_client` ќе биде според неговото id (client_id на клиентот). |
| | 57 | |
| | 58 | '''2.''' Примарен случај на употреба ќе е преглед на сите активни и историски договори за одреден клиент. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| | 59 | |
| | 60 | '''3.''' Иницијалното време за извршување на погледот е '''399ms'''. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање. |
| | 61 | |
| | 62 | [[Image(Contracts_per_Client_Execution.png, 800px)]] |
| | 63 | |
| | 64 | '''4.''' Најбавната операција е full scan на табелата: |
| | 65 | * `Client_Vendor_Contract` - 7k cost |
| | 66 | |
| | 67 | [[Image(Contracts_per_Client_Scan.png, 800px)]] |
| | 68 | |
| | 69 | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| | 70 | |
| | 71 | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| | 72 | |
| | 73 | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| | 74 | |
| | 75 | '''5.''' Иницијално беше разгледано индексирање преку `idx_cvc_client_id`, меѓутоа мерењата покажаа дека тој индекс го влошува времето на извршување (399ms → 4s 421ms) поради ниска селективност — колоната client_id враќа многу редови по вредност, па планерот прибегнува кон scatter reads наместо секвенцијален скен. Поради тоа, индексот беше отстранет. Перформансите на овој поглед се подобрени само преку индексите `idx_project_contract_id` и `idx_cvc_vendor_id` креирани во View1. Времето изминато во извршување на query-то изнесува: |
| | 76 | |
| | 77 | [[Image(Contracts_per_Client_Execution_After_Indexing.png, 800px)]] |
| | 78 | |
| | 79 | [[Image(Contracts_per_Client_Scan_After_Indexing.png, 800px)]] |
| | 80 | |
| | 81 | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| | 82 | |
| | 83 | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| | 84 | |
| | 85 | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| | 86 | |
| | 87 | ---- |
| | 88 | |
| | 89 | == View3: Проекти по продавач (vw_projects_per_vendor) == |
| | 90 | |
| | 91 | '''1.''' Примарен филтер за погледот `vw_projects_per_vendor` ќе биде според неговото id (vendor_id на продавачот). |
| | 92 | |
| | 93 | '''2.''' Примарен случај на употреба ќе е преглед на сите проекти поврзани со одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| | 94 | |
| | 95 | '''3.''' Иницијалното време за извршување на погледот е '''445ms'''. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање. |
| | 96 | |
| | 97 | [[Image(Projects_per_Vendor_Execution.png, 800px)]] |
| | 98 | |
| | 99 | '''4.''' Најбавните операции се full scan на табелите: |
| | 100 | * `Project` - 26k cost |
| | 101 | * `Client_Vendor_Contract` - 7k cost |
| | 102 | |
| | 103 | [[Image(Projects_per_Vendor_Scan.png, 800px)]] |
| | 104 | |
| | 105 | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| | 106 | |
| | 107 | [[Image(Project_Insert_Pre_Index.png, 800px)]] |
| | 108 | |
| | 109 | [[Image(Project_Update_Pre_Index.png, 800px)]] |
| | 110 | |
| | 111 | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| | 112 | |
| | 113 | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| | 114 | |
| | 115 | '''5.''' Иако овој поглед не е аналитички и би имал потреба од индексирање, индексите `idx_project_contract_id` и `idx_cvc_vendor_id` креирани во View1 ги покриваат потребните колони за овој поглед. Забележано е дека присуството на `idx_cvc_client_id` го влошуваше планот за извршување (445ms → 7s 377ms), па по негово отстранување перформансите се вратени и понатаму подобрени. Времето изминато во извршување на query-то изнесува: |
| | 116 | |
| | 117 | [[Image(Projects_per_Vendor_Execution_After_Indexing.png, 800px)]] |
| | 118 | |
| | 119 | [[Image(Projects_per_Vendor_Scan_After_Indexing.png, 800px)]] |
| 171 | | '''5.''' По креирање на индексот: |
| 172 | | |
| 173 | | {{{ |
| 174 | | CREATE INDEX idx_client_industry_id ON Client (industry_id); |
| 175 | | }}} |
| 176 | | |
| 177 | | Времето изминато во извршување на query-то со индекси изнесува: |
| 178 | | |
| 179 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 180 | | |
| 181 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 182 | | |
| 183 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 184 | | |
| 185 | | [[Image(Client_Insert_Post_Index.png, 800px)]] |
| 186 | | |
| 187 | | [[Image(Client_Update_Post_Index.png, 800px)]] |
| 188 | | |
| 189 | | ---- |
| 190 | | |
| 191 | | == View5: Договори по клиент (vw_contracts_per_client) == |
| 192 | | |
| 193 | | '''1.''' Примарен филтер за погледот `vw_contracts_per_client` ќе биде според неговото id (client_id на клиентот). |
| 194 | | |
| 195 | | '''2.''' Примарен случај на употреба ќе е преглед на сите активни и историски договори за одреден клиент. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| 196 | | |
| 197 | | '''3.''' Иницијалното време за извршување на погледот е '''399ms'''. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање. |
| 198 | | |
| 199 | | [[Image(Contracts_per_Client_Execution.png, 800px)]] |
| 200 | | |
| 201 | | '''4.''' Најбавната операција е full scan на табелата: |
| 202 | | * `Client_Vendor_Contract` - 7k cost |
| 203 | | |
| 204 | | [[Image(Contracts_per_Client_Scan.png, 800px)]] |
| 205 | | |
| 206 | | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| 207 | | |
| 208 | | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| 209 | | |
| 210 | | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| 211 | | |
| 212 | | '''5.''' Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува: |
| 213 | | |
| 214 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 215 | | |
| 216 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 217 | | |
| 218 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 219 | | |
| 220 | | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| 221 | | |
| 222 | | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| 223 | | |
| 224 | | ---- |
| 225 | | |
| 226 | | == View6: Договори по продавач (vw_contracts_per_vendor) == |
| 227 | | |
| 228 | | '''1.''' Примарен филтер за погледот `vw_contracts_per_vendor` ќе биде според неговото id (vendor_id на продавачот). |
| 229 | | |
| 230 | | '''2.''' Примарен случај на употреба ќе е преглед на сите активни и историски договори за одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| 231 | | |
| 232 | | '''3.''' Иницијалното время за извршување на погледот е '''5s 887ms'''. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање. |
| 233 | | |
| 234 | | [[Image(Contracts_per_Vendor_Execution.png, 800px)]] |
| 235 | | |
| 236 | | '''4.''' Најбавната операција е full scan на табелата: |
| 237 | | * `Client_Vendor_Contract` - 7k cost |
| 238 | | |
| 239 | | [[Image(Contracts_per_Vendor_Scan.png, 800px)]] |
| 240 | | |
| 241 | | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| 242 | | |
| 243 | | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| 244 | | |
| 245 | | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| 246 | | |
| 247 | | '''5.''' Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува: |
| 248 | | |
| 249 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 250 | | |
| 251 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 252 | | |
| 253 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 254 | | |
| 255 | | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| 256 | | |
| 257 | | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| 258 | | |
| 259 | | ---- |
| 260 | | |
| 261 | | == View7: Број на проекти по статус по клиент (vw_project_count_by_status_per_client) == |
| 262 | | |
| 263 | | '''1.''' Примарен филтер за погледот `vw_project_count_by_status_per_client` ќе биде според неговото id (client_id на клиентот). |
| 264 | | |
| 265 | | '''2.''' Примарен случај на употреба ќе е преглед на бројот на проекти групирани по статус за одреден клиент. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| 266 | | |
| 267 | | '''3.''' Иницијалното время за извршување на погледот е '''317ms'''. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање. |
| 268 | | |
| 269 | | [[Image(Project_Count_By_Status_Per_Client_Execution.png, 800px)]] |
| 270 | | |
| 271 | | '''4.''' Најбавните операции се full scan на табелите: |
| 272 | | * `Project` - 26k cost |
| 273 | | * `Client_Vendor_Contract` - 7k cost |
| 274 | | |
| 275 | | [[Image(Project_Count_By_Status_Per_Client_Scan.png, 800px)]] |
| 276 | | |
| 277 | | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| 278 | | |
| 279 | | [[Image(Project_Insert_Pre_Index.png, 800px)]] |
| 280 | | |
| 281 | | [[Image(Project_Update_Pre_Index.png, 800px)]] |
| 282 | | |
| 283 | | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| 284 | | |
| 285 | | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| 286 | | |
| 287 | | '''5.''' Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува: |
| 288 | | |
| 289 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 290 | | |
| 291 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 292 | | |
| 293 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 294 | | |
| 295 | | [[Image(Project_Insert_Post_Index.png, 800px)]] |
| 296 | | |
| 297 | | [[Image(Project_Update_Post_Index.png, 800px)]] |
| 298 | | |
| 299 | | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| 300 | | |
| 301 | | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| 302 | | |
| 303 | | ---- |
| 304 | | |
| 305 | | == View8: Број на проекти по статус по продавач (vw_project_count_by_status_per_vendor) == |
| 306 | | |
| 307 | | '''1.''' Примарен филтер за погледот `vw_project_count_by_status_per_vendor` ќе биде според неговото id (vendor_id на продавачот). |
| 308 | | |
| 309 | | '''2.''' Примарен случај на употреба ќе е преглед на бројот на проекти групирани по статус за одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| 310 | | |
| 311 | | '''3.''' Иницијалното время за извршување на погледот е '''317ms'''. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање. |
| 312 | | |
| 313 | | [[Image(Project_Count_By_Status_Per_Vendor_Execution.png, 800px)]] |
| 314 | | |
| 315 | | '''4.''' Најбавните операции се full scan на табелите: |
| 316 | | * `Project` - 26k cost |
| 317 | | * `Client_Vendor_Contract` - 7k cost |
| 318 | | |
| 319 | | [[Image(Project_Count_By_Status_Per_Vendor_Scan.png, 800px)]] |
| 320 | | |
| 321 | | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| 322 | | |
| 323 | | [[Image(Project_Insert_Pre_Index.png, 800px)]] |
| 324 | | |
| 325 | | [[Image(Project_Update_Pre_Index.png, 800px)]] |
| 326 | | |
| 327 | | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| 328 | | |
| 329 | | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| 330 | | |
| 331 | | '''5.''' Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува: |
| 332 | | |
| 333 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 334 | | |
| 335 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 336 | | |
| 337 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 338 | | |
| 339 | | [[Image(Project_Insert_Post_Index.png, 800px)]] |
| 340 | | |
| 341 | | [[Image(Project_Update_Post_Index.png, 800px)]] |
| 342 | | |
| 343 | | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| 344 | | |
| 345 | | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| 346 | | |
| 347 | | ---- |
| 348 | | |
| 349 | | == View9: Проекти по клиент (vw_projects_per_client) == |
| 350 | | |
| 351 | | '''1.''' Примарен филтер за погледот `vw_projects_per_client` ќе биде според неговото id (client_id на клиентот). |
| 352 | | |
| 353 | | '''2.''' Примарен случај на употреба ќе е преглед на сите проекти поврзани со одреден клиент. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| 354 | | |
| 355 | | '''3.''' Иницијалното время за извршување на погледот е '''626ms'''. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање. |
| 356 | | |
| 357 | | [[Image(Projects_per_Client_Execution.png, 800px)]] |
| 358 | | |
| 359 | | '''4.''' Најбавните операции се full scan на табелите: |
| 360 | | * `Project` - 26k cost |
| 361 | | * `Client_Vendor_Contract` - 7k cost |
| 362 | | |
| 363 | | [[Image(Projects_per_Client_Scan.png, 800px)]] |
| 364 | | |
| 365 | | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| 366 | | |
| 367 | | [[Image(Project_Insert_Pre_Index.png, 800px)]] |
| 368 | | |
| 369 | | [[Image(Project_Update_Pre_Index.png, 800px)]] |
| 370 | | |
| 371 | | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| 372 | | |
| 373 | | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| 374 | | |
| 375 | | '''5.''' Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува: |
| 376 | | |
| 377 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 378 | | |
| 379 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 380 | | |
| 381 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 382 | | |
| 383 | | [[Image(Project_Insert_Post_Index.png, 800px)]] |
| 384 | | |
| 385 | | [[Image(Project_Update_Post_Index.png, 800px)]] |
| 386 | | |
| 387 | | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| 388 | | |
| 389 | | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| 390 | | |
| 391 | | ---- |
| 392 | | |
| 393 | | == View10: Проекти по продавач (vw_projects_per_vendor) == |
| 394 | | |
| 395 | | '''1.''' Примарен филтер за погледот `vw_projects_per_vendor` ќе биде според неговото id (vendor_id на продавачот). |
| 396 | | |
| 397 | | '''2.''' Примарен случај на употреба ќе е преглед на сите проекти поврзани со одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување. |
| 398 | | |
| 399 | | '''3.''' Иницијалното время за извршување на погледот е '''445ms'''. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање. |
| 400 | | |
| 401 | | [[Image(Projects_per_Vendor_Execution.png, 800px)]] |
| 402 | | |
| 403 | | '''4.''' Најбавните операции се full scan на табелите: |
| 404 | | * `Project` - 26k cost |
| 405 | | * `Client_Vendor_Contract` - 7k cost |
| 406 | | |
| 407 | | [[Image(Projects_per_Vendor_Scan.png, 800px)]] |
| 408 | | |
| 409 | | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| 410 | | |
| 411 | | [[Image(Project_Insert_Pre_Index.png, 800px)]] |
| 412 | | |
| 413 | | [[Image(Project_Update_Pre_Index.png, 800px)]] |
| 414 | | |
| 415 | | [[Image(Client_Vendor_Contract_Insert_Pre_Index.png, 800px)]] |
| 416 | | |
| 417 | | [[Image(Client_Vendor_Contract_Update_Pre_Index.png, 800px)]] |
| 418 | | |
| 419 | | '''5.''' Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува: |
| 420 | | |
| 421 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 422 | | |
| 423 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 424 | | |
| 425 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 426 | | |
| 427 | | [[Image(Project_Insert_Post_Index.png, 800px)]] |
| 428 | | |
| 429 | | [[Image(Project_Update_Post_Index.png, 800px)]] |
| 430 | | |
| 431 | | [[Image(Client_Vendor_Contract_Insert_Post_Index.png, 800px)]] |
| 432 | | |
| 433 | | [[Image(Client_Vendor_Contract_Update_Post_Index.png, 800px)]] |
| 434 | | |
| 435 | | ---- |
| 436 | | |
| 437 | | == View11: Нерешени тикети за спорови (vw_unresolved_dispute_tickets) == |
| | 198 | '''5.''' По тестирање на индексот `idx_client_industry_id ON Client (industry_id)`, мерењата покажаа дека индексот го влошува времето на извршување (94ms → 1s 166ms). Табелата `Client` е доволно мала (500 cost) за планерот да претпочита секвенцијален скен. Поради тоа, индексот беше отстранет и се заклучува дека нема потреба од индексирање за овој поглед. |
| | 199 | |
| | 200 | '''6.''' Времето на извршување на операциите insert и update останува исто. |
| | 201 | |
| | 202 | ---- |
| | 203 | |
| | 204 | == View6: Нерешени тикети за спорови (vw_unresolved_dispute_tickets) == |
| 496 | | Времето изминато во извршување на операциите insert и update пред индексирање изнесува: |
| 497 | | |
| 498 | | [[Image(Vendor_Subscription_Insert_Pre_Index.png, 800px)]] |
| 499 | | |
| 500 | | [[Image(Vendor_Subscription_Update_Pre_Index.png, 800px)]] |
| 501 | | |
| 502 | | '''5.''' По креирање на индексите: |
| 503 | | |
| 504 | | {{{ |
| 505 | | CREATE INDEX idx_vendorsub_vendor_id ON Vendor_Subscription (vendor_id); |
| 506 | | CREATE INDEX idx_vendorsub_tier_id ON Vendor_Subscription (tier_id); |
| 507 | | }}} |
| 508 | | |
| 509 | | Времето изминато во извршување на query-то со индекси изнесува: |
| 510 | | |
| 511 | | ''[SCREENSHOT: SELECT извршување по индексирање]'' |
| 512 | | |
| 513 | | ''[SCREENSHOT: Explain Plan по индексирање]'' |
| 514 | | |
| 515 | | '''6.''' Времето изминато во извршување на операциите insert и update по индексирање изнесува: |
| 516 | | |
| 517 | | [[Image(Vendor_Subscription_Insert_Post_Index.png, 800px)]] |
| 518 | | |
| 519 | | [[Image(Vendor_Subscription_Update_Post_Index.png, 800px)]] |
| | 263 | '''5.''' Нема потреба да се преуреди прашалникот. |
| | 264 | |
| | 265 | '''6.''' Времето на извршување на операциите останува исто. |
| | 266 | |
| | 267 | ---- |
| | 268 | |
| | 269 | == View8: Просечна оценка по продавач (vw_avg_rating_per_vendor) == |
| | 270 | |
| | 271 | '''1.''' Примарен филтер за погледот `vw_avg_rating_per_vendor` ќе биде според неговото id (vendor_id на продавачот). |
| | 272 | |
| | 273 | '''2.''' Примарен случај на употреба ќе е преглед на просечната оценка на секој продавач врз основа на рецензии од проекти. Овој поглед е аналитички по природа (пресметува агрегатни вредности со AVG и COUNT) и не бара директно индексирање. Сепак, перформансите на овој поглед се подобрени поради индексирањето применето во View1. |
| | 274 | |
| | 275 | '''3.''' Иницијалното време за извршување на погледот е '''1m 24s 217ms'''. |
| | 276 | |
| | 277 | [[Image(Average_Rating_Execution.png, 800px)]] |
| | 278 | |
| | 279 | '''4.''' Најбавните операции се full scan на табелите: |
| | 280 | * `Project` - 26k cost |
| | 281 | * `Client_Vendor_Contract` - 7k cost |
| | 282 | |
| | 283 | [[Image(Average_Rating_Scan.png, 800px)]] |
| | 284 | |
| | 285 | '''5.''' Иако овој поглед е аналитички и не бара директно индексирање, перформансите се подобрени поради индексите `idx_project_contract_id` и `idx_cvc_vendor_id` креирани во View1 (1m 24s 217ms → 15s 519ms). Времето изминато во извршување на query-то по индексирање изнесува: |
| | 286 | |
| | 287 | [[Image(Average_Rating_per_Vendor_Execution_After_Indexing.png, 800px)]] |
| | 288 | |
| | 289 | [[Image(Average_Rating_per_Vendor_Scan_After_Indexing.png, 800px)]] |
| | 290 | |
| | 291 | '''6.''' Времето на извршување на операциите insert и update останува непроменето бидејќи не се додадени нови индекси за овој поглед. |
| | 292 | |
| | 293 | ---- |
| | 294 | |
| | 295 | == View9: Вкупен буџет по клиент (vw_budget_per_client) == |
| | 296 | |
| | 297 | '''1.''' Примарен филтер за погледот `vw_budget_per_client` ќе биде според неговото id (client_id на клиентот). |
| | 298 | |
| | 299 | '''2.''' Примарен случај на употреба ќе е преглед на вкупниот буџет потрошен по клиент низ сите проекти и договори. Овој поглед е аналитички по природа (пресметува агрегатни вредности со SUM и COUNT) и не бара директно индексирање. |
| | 300 | |
| | 301 | '''3.''' Иницијалното время за извршување на погледот е '''320ms'''. |
| | 302 | |
| | 303 | [[Image(Budget_per_Client_Execution.png, 800px)]] |
| | 304 | |
| | 305 | '''4.''' Најбавните операции се full scan на табелите: |
| | 306 | * `Project` - 26k cost |
| | 307 | * `Client_Vendor_Contract` - 7k cost |
| | 308 | |
| | 309 | [[Image(Budget_per_Client_Scan.png, 800px)]] |
| | 310 | |
| | 311 | '''5.''' Иако овој поглед е аналитички, беше забележано дека присуството на `idx_cvc_client_id` го влошуваше времето на извршување (320ms → 621ms). По отстранување на тој индекс, перформансите се стабилизирани со индексите `idx_project_contract_id` и `idx_cvc_vendor_id` од View1. Времето изминато во извршување на query-то по индексирање изнесува: |
| | 312 | |
| | 313 | [[Image(Budget_per_Client_Execution_After_Indexing.png, 800px)]] |
| | 314 | |
| | 315 | [[Image(Budget_per_Client_Scan_After_Indexing.png, 800px)]] |
| | 316 | |
| | 317 | '''6.''' Времето на извршување на операциите insert и update останува непроменето бидејќи не се додадени нови индекси за овој поглед. |
| | 318 | |
| | 319 | ---- |
| | 320 | |
| | 321 | == View10: Вкупен буџет по продавач (vw_budget_per_vendor) == |
| | 322 | |
| | 323 | '''1.''' Примарен филтер за погледот `vw_budget_per_vendor` ќе биде според неговото id (vendor_id на продавачот). |
| | 324 | |
| | 325 | '''2.''' Примарен случај на употреба ќе е преглед на вкупниот буџет потрошен по продавач низ сите проекти и договори. Овој поглед е аналитички по природа (пресметува агрегатни вредности со SUM и COUNT) и не бара директно индексирање. Сепак, перформансите на овој поглед се подобрени поради индексирањето применето во View1. |
| | 326 | |
| | 327 | '''3.''' Иницијалното время за извршување на погледот е '''319ms'''. |
| | 328 | |
| | 329 | [[Image(Budget_per_Vendor_Execution.png, 800px)]] |
| | 330 | |
| | 331 | '''4.''' Најбавните операции се full scan на табелите: |
| | 332 | * `Project` - 26k cost |
| | 333 | * `Client_Vendor_Contract` - 7k cost |
| | 334 | |
| | 335 | [[Image(Budget_per_Vendor_Scan.png, 800px)]] |
| | 336 | |
| | 337 | '''5.''' Иако овој поглед е аналитички и не бара директно индексирање, перформансите се подобрени поради индексите `idx_project_contract_id` и `idx_cvc_vendor_id` креирани во View1 (319ms → 39ms). Времето изминато во извршување на query-то по индексирање изнесува: |
| | 338 | |
| | 339 | [[Image(Budget_per_Vendor_Execution_After_Indexing.png, 800px)]] |
| | 340 | |
| | 341 | [[Image(Budget_per_Vendor_Scan_After_Indexing.png, 800px)]] |
| | 342 | |
| | 343 | '''6.''' Времето на извршување на операциите insert и update останува непроменето бидејќи не се додадени нови индекси за овој поглед. |
| | 344 | |
| | 345 | ---- |
| | 346 | |
| | 347 | == View11: Број на проекти по статус по клиент (vw_project_count_by_status_per_client) == |
| | 348 | |
| | 349 | '''1.''' Примарен филтер за погледот `vw_project_count_by_status_per_client` ќе биде според неговото id (client_id на клиентот). |
| | 350 | |
| | 351 | '''2.''' Примарен случај на употреба ќе е преглед на бројот на проекти групирани по статус за одреден клиент. Овој поглед е аналитички по природа (пресметува агрегатни вредности со COUNT и GROUP BY) и не бара директно индексирање. |
| | 352 | |
| | 353 | '''3.''' Иницијалното время за извршување на погледот е '''317ms'''. |
| | 354 | |
| | 355 | [[Image(Project_Count_By_Status_Per_Client_Execution.png, 800px)]] |
| | 356 | |
| | 357 | '''4.''' Најбавните операции се full scan на табелите: |
| | 358 | * `Project` - 26k cost |
| | 359 | * `Client_Vendor_Contract` - 7k cost |
| | 360 | |
| | 361 | [[Image(Project_Count_By_Status_Per_Client_Scan.png, 800px)]] |
| | 362 | |
| | 363 | '''5.''' Иако овој поглед е аналитички, беше забележано дека присуството на `idx_cvc_client_id` го влошуваше времето на извршување (317ms → 1s 430ms). По отстранување на тој индекс, перформансите се стабилизирани со индексите `idx_project_contract_id` и `idx_cvc_vendor_id` од View1. Времето изминато во извршување на query-то по индексирање изнесува: |
| | 364 | |
| | 365 | [[Image(Project_Count_by_Status_per_Client_Execution_After_Indexing.png, 800px)]] |
| | 366 | |
| | 367 | [[Image(Project_Count_by_Status_per_Client_Scan_After_Indexing.png, 800px)]] |
| | 368 | |
| | 369 | '''6.''' Времето на извршување на операциите insert и update останува непроменето бидејќи не се додадени нови индекси за овој поглед. |
| | 370 | |
| | 371 | ---- |
| | 372 | |
| | 373 | == View12: Број на проекти по статус по продавач (vw_project_count_by_status_per_vendor) == |
| | 374 | |
| | 375 | '''1.''' Примарен филтер за погледот `vw_project_count_by_status_per_vendor` ќе биде според неговото id (vendor_id на продавачот). |
| | 376 | |
| | 377 | '''2.''' Примарен случај на употреба ќе е преглед на бројот на проекти групирани по статус за одреден продавач. Овој поглед е аналитички по природа (пресметува агрегатни вредности со COUNT и GROUP BY) и не бара директно индексирање. Сепак, перформансите на овој поглед се подобрени поради индексирањето применето во View1. |
| | 378 | |
| | 379 | '''3.''' Иницијалното время за извршување на погледот е '''317ms'''. |
| | 380 | |
| | 381 | [[Image(Project_Count_By_Status_Per_Vendor_Execution.png, 800px)]] |
| | 382 | |
| | 383 | '''4.''' Најбавните операции се full scan на табелите: |
| | 384 | * `Project` - 26k cost |
| | 385 | * `Client_Vendor_Contract` - 7k cost |
| | 386 | |
| | 387 | [[Image(Project_Count_By_Status_Per_Vendor_Scan.png, 800px)]] |
| | 388 | |
| | 389 | '''5.''' Иако овој поглед е аналитички и не бара директно индексирање, перформансите се подобрени поради индексите `idx_project_contract_id` и `idx_cvc_vendor_id` креирани во View1 (317ms → 63ms). Времето изминато во извршување на query-то по индексирање изнесува: |
| | 390 | |
| | 391 | [[Image(Project_Count_by_Status_per_Vendor_Execution_After_Indexing.png, 800px)]] |
| | 392 | |
| | 393 | [[Image(Project_Count_by_Status_per_Vendor_Scan_After_Indexing.png, 800px)]] |
| | 394 | |
| | 395 | '''6.''' Времето на извршување на операциите insert и update останува непроменето бидејќи не се додадени нови индекси за овој поглед. |