Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Редът на Sql JOIN влияе ли на производителността?

Редът на присъединяване в SQL2008R2 сървър несъмнено влияе върху производителността на заявките, особено при заявки, при които има голям брой присъединявания на таблици с клаузи where, приложени към множество таблици.

Въпреки че редът на присъединяване се променя при оптимизация, оптимизаторът не опитва всички възможни поръчки за присъединяване. Той спира, когато намери това, което смята за работещо решение, тъй като самият акт на оптимизация използва ценни ресурси.

Виждали сме заявки, които се изпълняват като кучета (1 минута + време на изпълнение), се свеждат до под второто изпълнение само чрез промяна на реда на изразите за присъединяване. Моля, имайте предвид обаче, че това са заявки с 12 до 20 присъединявания и клаузи where в няколко от таблиците.

Номерът е да зададете поръчката си, за да помогнете на оптимизатора на заявки да разбере какво има смисъл. Можете да използвате Force Order, но това може да бъде твърде строго. Опитайте се да се уверите, че вашата поръчка за присъединяване започва с таблиците, където ще намали данните най-много чрез клаузите where.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да променя db схемата на dbo

  2. Изберете Данни чрез функция с таблично значение в SQL Server

  3. Филтрирайте по изходна клауза sql

  4. Как програмно да създадете ODBC свързана таблица към изглед на SQL сървър и да може да бъде редактирана?

  5. Премахване на водещи нули от поле в SQL израз