Aşağıdaki sorgular için SQL Server yürütme planını anlamama yardımcı olan herhangi biri var mı?SQL Server scalar işlevi ile alt sorgu yürütme planı analizi
Alt sorgu sürümünün (Query 2) daha hızlı çalışmasını bekledim, çünkü ayar tabanlı. marjinal - - Bu bağımsız sorgular runnning zaman davayı gibi görünen yürütme planı% 85 sırasıyla% 15 vs olarak sorgu maliyetleri gösterir ancak: Burada ne eksik
//-- Query 1 (15%) - Scalar Function
SELECT
gi.GalleryImageId,
gi.FbUserId,
dbo.GetGalleryImageVotesByGalleryImageId(gi.GalleryImageId) AS Votes
FROM
GalleryImage gi
//-- Query 2 (85%) - Subquery
SELECT
gi.GalleryImageId,
gi.FbUserId,
(SELECT COUNT(*) FROM GalleryImageVote WHERE GalleryImageId = gi.GalleryImageId)
FROM
GalleryImage gi
; yürütme planı, işlevin maliyetini atlıyor mu? Ayrıca, yukarıdakilerden herhangi birinin bir CTE veya AVER/PARTITION sorgusuyla daha iyi sunulup sunulmayacağı konusunda herhangi bir öneriniz var mı?
Teşekkürler!
İkisini de aynı sorgu düzenleyicisi penceresinde aldınız mı? Sorgu analizcisi bunları karşılaştıracak ve her bir göreceli değeri pencerede olana (% 15 /% 85) atayacaktır. – JNK
Evet,% değerlerin geldiği yer burası :) – Robarondaz
Sorgu yürütme zamanı her zaman maliyete eşit değil. SQL Server, CPU ve RAM kullanımını HDD okumalarından daha yüksek bir ağırlık gibi görünüyor. – jahu