Ben çalıştırmak için 10 saniye sürdü ki (aşağıda) yürütülürken çalıştı bir sql sorgusu var ve bu üretim ortamına beri sadece oluyor hiçbir sql kilitleme olduğundan emin olmak için onu durdurduBu sorgulardan birini daha hızlı yapan nedir?
SELECT TOP 1000000 *
FROM Table T
Where CONVERT(nvarchar(max), T.Data) like '%SearchPhrase%' --T.Data is initially XML
Şimdi eğer yaratma zamanı (ki bir endeks olduğuna inanmıyorum) tarafından bir sipariş eklerseniz, 2 saniye sürer ve tamamlanır.
SELECT TOP 1000000 *
FROM Table T
Where CONVERT(nvarchar(max), T.Data) like '%SearchPhrase%' --T.Data is initially XML
order by T.CreatedOn asc
Şimdi vurucu sadece yaklaşık satır bile
TOP 1000000
ile kısa hala tüm satırlar geçiyor hangi satırların üzerinde durmuyor söylüyor ki, döndürülür olmasıdır.
SQL sunucusunun nasıl çalıştığı ve sorgu ayrıştırma işleminin nasıl işlediğine dair temel bir anlayışa sahibim, ancak yalnızca bu durumun neden bu kadar hızlı yapıldığını anlamıyorum.
sunucu yürütülüyor SQL sunucusu 2008 R2
Sorguların her birinden "EXPLAIN PLAN" a bakın ve işlerin nasıl yapıldığına ilişkin farkın ne olduğunu görün. –
İki sonuç her zaman 10 saniye ve 2 saniyede mi dönüyor? – Kane
@Kane tam buralarda. Aslında birincisini bitiremedim çünkü sunucunun kaynakları kilitlemesini istemedim ** EDIT ** İlkinin tamamen çalışmasına izin verdim ve 20 saniye sürdüm (arka arkaya 20 kere aldım) –