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

Dlaczego warto korzystać z Select Top 100 procent?

Był używany do „pośredniej materializacji (wyszukiwarka Google)”

Dobry artykuł:Adam Machani:Odkrywanie sekretów pośredniej materializacji

Podniósł nawet MS Connect, aby można było to zrobić w czystszy sposób

Mój pogląd „nie jest z natury zły”, ale nie używaj go, chyba że jest na 100% pewien. Problem polega na tym, że działa tylko w momencie, w którym to robisz i prawdopodobnie nie później (poziom łaty, schemat, indeks, liczba wierszy itp.)...

Przykład pracy

Może się to nie udać, ponieważ nie wiesz, w jakiej kolejności rzeczy są oceniane

SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100

Może się to również nie udać, ponieważ

SELECT foo
FROM
    (SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
    CAST(foo AS int) > 100

Jednak tak się nie stało w SQL Server 2000. Wewnętrzne zapytanie jest oceniane i buforowane:

SELECT foo
FROM
    (SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
    CAST(foo AS int) > 100

Uwaga, to nadal działa w SQL Server 2005

SELECT TOP 2000000000 ... ORDER BY...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Słaba wydajność planu wykonania procedury składowanej w SQL - podsłuchiwanie parametrów

  2. Jak ustawić parametry połączenia SQL Server?

  3. Czy można uzyskać dostęp do bazy danych .mdf bez SQL Server?

  4. Wyświetlanie historii zadań agenta programu SQL Server za pomocą usługi Azure Data Studio

  5. Jak pobrać liczbę wierszy dla wszystkich tabel w bazie danych SQL SERVER?