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

Dodawanie INDEKSU do CTE

Miałem ten sam wymóg. Indeksów nie można dodawać do CTE. Jednak w CTE wybierz dodanie ORDER BY klauzula na połączonych polach skróciła czas wykonania z 20 minut lub więcej do poniżej 10 sekund.

(Musisz również DODAĆ WYBIERZ TOP 100 PROCENT, aby umożliwić ZAMÓWIENIE WEDŁUG w wyborze CTE.)

[edytuj, aby dodać parafrazowany cytat z poniższego komentarza]:
Jeśli masz DISTINCT w CTE, TOP 100 PROCENT nie działa. Ta oszukująca metoda jest zawsze dostępna:bez konieczności używania TOP podczas wybierania, zmień instrukcję ORDER BY tak, aby wyglądała następująco:
ORDER BY [Blah] OFFSET 0 ROWS



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. order by newid() - jak to działa?

  2. Jak utworzyć krok w moim zadaniu agenta programu SQL Server, który będzie uruchamiał mój pakiet SSIS?

  3. Kreator generowania skryptów SQL Server 2008 daje mi skrypt, w wyniku którego pojawiają się niezamknięte cudzysłowy

  4. Jak wygenerować skrypty dla wszystkich tabel jednym pociągnięciem w SQL Server 2000?

  5. Zwijanie wielu rzędów w jednym rzędzie