Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

wydajność udf vs bezpośredni sql

  • Jeśli chcesz dołączyć do Purchases.CustomerID powinieneś umieścić na nim indeks.
  • Jeśli często pytasz o zakresy wartości, powinieneś również umieścić indeks.

W tej chwili prosisz serwer SQL, aby wybrał między dwoma złymi planami.

SQL Server może z grubsza odgadnąć, ile zakupów zostanie objętych > 1000 zapytanie i wybierze na jego podstawie plan.

Jednak nie może zgadnąć, ile będzie objętych zapytaniem UDF, więc może wybrać inny plan. Ponieważ trwa ignorancja, może być lepszy lub gorszy niż inny plan, w zależności od tego, jak dobre są jego przypuszczenia.

Możesz zobaczyć wygenerowane plany i poda szacunkową liczbę wierszy w każdym planie, a także rzeczywistą liczbę. Te szacunkowe liczby decydują o wyborze planu w każdym przypadku.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podzapytanie zwróciło więcej niż 1 wartość

  2. Jak ustawić nazwę aplikacji w parametrach połączenia ADODB?

  3. Przekazywanie c# DataTable jako parametru do procedury składowanej w MS SQL Server 2008

  4. Jak wstawić obiekt blob do bazy danych za pomocą studia zarządzania serwerem sql

  5. Serwer SQL wybiera różne wiersze, używając wartości sprzed określonej daty