| Version 8 (modified by , 3 weeks ago) ( diff ) |
|---|
Индекси и оптимизација на прашалници
Членови на тим:
- Никола Маркоски (235013)
- Шенол Фејзоски (231075)
View1: Просечна оценка по продавач (vw_avg_rating_per_vendor)
1. Примарен филтер за погледот vw_avg_rating_per_vendor ќе биде според неговото id (vendor_id на продавачот).
2. Примарен случај на употреба ќе е преглед на просечната оценка на секој продавач врз основа на рецензии од проекти. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното време за извршување на погледот е 1m 24s 217ms. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавните операции се full scan на табелите:
Project- 26k costClient_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. По креирање на индексите:
CREATE INDEX idx_project_contract_id ON Project (contract_id); CREATE INDEX idx_cvc_client_id ON Client_Vendor_Contract (client_id); CREATE INDEX idx_cvc_vendor_id ON Client_Vendor_Contract (vendor_id);
Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View2: Вкупен буџет по клиент (vw_budget_per_client)
1. Примарен филтер за погледот vw_budget_per_client ќе биде според неговото id (client_id на клиентот).
2. Примарен случај на употреба ќе е преглед на вкупниот буџет потрошен по клиент низ сите проекти и договори. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното време за извршување на погледот е 320ms. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавните операции се full scan на табелите:
Project- 26k costClient_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View3: Вкупен буџет по продавач (vw_budget_per_vendor)
1. Примарен филтер за погледот vw_budget_per_vendor ќе биде според неговото id (vendor_id на продавачот).
2. Примарен случај на употреба ќе е преглед на вкупниот буџет потрошен по продавач низ сите проекти и договори. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното време за извршување на погледот е 319ms. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавните операции се full scan на табелите:
Project- 26k costClient_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View4: Клиенти по индустрија (vw_clients_per_industry)
1. Примарен филтер за погледот vw_clients_per_industry ќе биде според неговото id (industry_id на индустријата).
2. Примарен случај на употреба ќе е преглед на сите клиенти кои припаѓаат на одредена индустрија. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното време за извршување на погледот е 94ms. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавната операција е full scan на табелата:
Client- 500 cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. По креирање на индексот:
CREATE INDEX idx_client_industry_id ON Client (industry_id);
Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View5: Договори по клиент (vw_contracts_per_client)
1. Примарен филтер за погледот vw_contracts_per_client ќе биде според неговото id (client_id на клиентот).
2. Примарен случај на употреба ќе е преглед на сите активни и историски договори за одреден клиент. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното време за извршување на погледот е 399ms. Ова не е прифатливо време за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавната операција е full scan на табелата:
Client_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View6: Договори по продавач (vw_contracts_per_vendor)
1. Примарен филтер за погледот vw_contracts_per_vendor ќе биде според неговото id (vendor_id на продавачот).
2. Примарен случај на употреба ќе е преглед на сите активни и историски договори за одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното время за извршување на погледот е 5s 887ms. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавната операција е full scan на табелата:
Client_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View7: Број на проекти по статус по клиент (vw_project_count_by_status_per_client)
1. Примарен филтер за погледот vw_project_count_by_status_per_client ќе биде според неговото id (client_id на клиентот).
2. Примарен случај на употреба ќе е преглед на бројот на проекти групирани по статус за одреден клиент. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното время за извршување на погледот е 317ms. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавните операции се full scan на табелите:
Project- 26k costClient_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View8: Број на проекти по статус по продавач (vw_project_count_by_status_per_vendor)
1. Примарен филтер за погледот vw_project_count_by_status_per_vendor ќе биде според неговото id (vendor_id на продавачот).
2. Примарен случај на употреба ќе е преглед на бројот на проекти групирани по статус за одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното время за извршување на погледот е 317ms. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавните операции се full scan на табелите:
Project- 26k costClient_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View9: Проекти по клиент (vw_projects_per_client)
1. Примарен филтер за погледот vw_projects_per_client ќе биде според неговото id (client_id на клиентот).
2. Примарен случај на употреба ќе е преглед на сите проекти поврзани со одреден клиент. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното время за извршување на погледот е 626ms. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавните операции се full scan на табелите:
Project- 26k costClient_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View10: Проекти по продавач (vw_projects_per_vendor)
1. Примарен филтер за погледот vw_projects_per_vendor ќе биде според неговото id (vendor_id на продавачот).
2. Примарен случај на употреба ќе е преглед на сите проекти поврзани со одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното время за извршување на погледот е 445ms. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавните операции се full scan на табелите:
Project- 26k costClient_Vendor_Contract- 7k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. Индексите креирани во View1 ги покриваат и овие табели. Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View11: Нерешени тикети за спорови (vw_unresolved_dispute_tickets)
1. Примарен филтер за погледот vw_unresolved_dispute_tickets ќе биде според project_id на проектот или assigned_management_user_id на корисникот.
2. Примарен случај на употреба ќе е преглед на сите активни нерешени тикети за спорови доделени на одреден менаџмент корисник или поврзани со одреден проект. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното время за извршување на погледот е 731ms. Ова не е прифатливо времe за апликацијата па затоа пристапуваме кон индексирање.
4. Најбавната операција е full scan на табелата:
Dispute_Ticket- 9k cost
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. По креирање на индексите:
CREATE INDEX idx_dispute_ticket_review_id ON Dispute_Ticket (review_id); CREATE INDEX idx_dispute_ticket_is_resolved ON Dispute_Ticket (is_resolved);
Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
View12: Претплати на продавачи (vw_vendor_subscriptions)
1. Примарен филтер за погледот vw_vendor_subscriptions ќе биде според неговото id (vendor_id на продавачот).
2. Примарен случај на употреба ќе е преглед на активните и историските претплати за одреден продавач. За овој поглед ни се важни перформансите, бидејќи без него се губи време при извршување.
3. Иницијалното время за извршување на погледот е 37ms. Ова е прифатливо времe за апликацијата.
4. Најбавната операција е full scan на табелата:
Vendor_Subscription- 180 cost
Иако времето е прифатливо, сепак пристапуваме кон индексирање за дополнителна оптимизација.
Времето изминато во извршување на операциите insert и update пред индексирање изнесува:
5. По креирање на индексите:
CREATE INDEX idx_vendorsub_vendor_id ON Vendor_Subscription (vendor_id); CREATE INDEX idx_vendorsub_tier_id ON Vendor_Subscription (tier_id);
Времето изминато во извршување на query-то со индекси изнесува:
[SCREENSHOT: SELECT извршување по индексирање]
[SCREENSHOT: Explain Plan по индексирање]
6. Времето изминато во извршување на операциите insert и update по индексирање изнесува:
Attachments (48)
- Budget_per_Client_Execution.png (15.8 KB ) - added by 3 weeks ago.
- Budget_per_Vendor_Execution.png (16.3 KB ) - added by 3 weeks ago.
- Client_Insert_Pre_Index.png (19.1 KB ) - added by 3 weeks ago.
- Client_Update_Pre_Index.png (16.4 KB ) - added by 3 weeks ago.
- Client_Vendor_Contract_Insert_Pre_Index.png (22.9 KB ) - added by 3 weeks ago.
- Client_Vendor_Contract_Update_Pre_Index.png (17.3 KB ) - added by 3 weeks ago.
- Clients_per_Industry_Execution.png (16.3 KB ) - added by 3 weeks ago.
- Dispute_Ticket_Update_Pre_Index.png (18.8 KB ) - added by 3 weeks ago.
- Contracts_per_Client_Execution.png (16.0 KB ) - added by 3 weeks ago.
- Contracts_per_Client_Scan.png (41.4 KB ) - added by 3 weeks ago.
- Contracts_per_Vendor_Execution.png (16.7 KB ) - added by 3 weeks ago.
- Contracts_per_Vendor_Scan.png (40.7 KB ) - added by 3 weeks ago.
- Dispute_Ticket_Insert_Pre_Index.png (21.8 KB ) - added by 3 weeks ago.
- Projects_per_Client_Execution.png (16.9 KB ) - added by 3 weeks ago.
- Project_Count_By_Status_Per_Vendor_Execution.png (17.1 KB ) - added by 3 weeks ago.
- Unresolved_Dispute_Tickets_Execution.png (16.6 KB ) - added by 3 weeks ago.
- Unresolved_Dispute_Tickets_Scan.png (86.7 KB ) - added by 3 weeks ago.
- Vendor_Subscription_Insert_Pre_Index.png (18.8 KB ) - added by 3 weeks ago.
- Vendor_Subscription_Update_Pre_Index.png (17.4 KB ) - added by 3 weeks ago.
- Vendor_Subscriptions_Execution.png (16.6 KB ) - added by 3 weeks ago.
- Project_Count_By_Status_Per_Client_Execution.png (16.7 KB ) - added by 3 weeks ago.
- Project_Insert_Pre_Index.png (17.9 KB ) - added by 3 weeks ago.
- Project_Update_Pre_Index.png (15.8 KB ) - added by 3 weeks ago.
- Projects_per_Client_Scan.png (59.6 KB ) - added by 3 weeks ago.
- Projects_per_Vendor_Scan.png (61.0 KB ) - added by 3 weeks ago.
- Projects_per_Vendor_Execution.png (16.3 KB ) - added by 3 weeks ago.
- Contracts_per_Vendor_Execution_After_Indexing.png (18.3 KB ) - added by 3 weeks ago.
- Contracts_per_Vendor_Scan_After_Indexing.png (69.3 KB ) - added by 3 weeks ago.
- Client_Vendor_Contract_Insert_After_Indexing.png (24.9 KB ) - added by 3 weeks ago.
- Client_Vendor_Contract_Update_After_Indexing.png (19.6 KB ) - added by 3 weeks ago.
- Contracts_per_Client_Execution_After_Indexing.png (17.7 KB ) - added by 3 weeks ago.
- Contracts_per_Client_Scan_After_Indexing.png (59.5 KB ) - added by 3 weeks ago.
- Projects_per_Vendor_Execution_After_Indexing.png (17.9 KB ) - added by 3 weeks ago.
- Projects_per_Vendor_Scan_After_Indexing.png (80.2 KB ) - added by 3 weeks ago.
- Project_Insert_After_Indexing.png (21.9 KB ) - added by 3 weeks ago.
- Project_Update_After_Indexing.png (18.9 KB ) - added by 3 weeks ago.
- Projects_per_Client_Execution_After_Indexing.png (17.9 KB ) - added by 3 weeks ago.
- Projects_per_Client_Scan_After_Indexing.png (80.2 KB ) - added by 3 weeks ago.
- Unresolved_Dispute_Tickets_Execution_After_Indexing.png (19.5 KB ) - added by 3 weeks ago.
- Unresolved_Dispute_Tickets_Scan_After_Indexing.png (112.3 KB ) - added by 3 weeks ago.
- Dispute_Ticket_Insert_After_Indexing.png (23.4 KB ) - added by 3 weeks ago.
- Dispute_Ticket_Update_After_Indexing.png (21.9 KB ) - added by 3 weeks ago.
- Average_Rating_Execution.png (15.9 KB ) - added by 3 weeks ago.
- Average_Rating_per_Vendor_Execution_After_Indexing.png (17.9 KB ) - added by 3 weeks ago.
- Budget_per_Client_Execution_After_Indexing.png (17.9 KB ) - added by 3 weeks ago.
- Budget_per_Vendor_Execution_After_Indexing.png (17.8 KB ) - added by 3 weeks ago.
- Project_Count_by_Status_per_Client_Execution_After_Indexing.png (18.6 KB ) - added by 3 weeks ago.
- Project_Count_by_Status_per_Vendor_Execution_After_Indexing.png (17.9 KB ) - added by 3 weeks ago.
Download all attachments as: .zip



























