Bilmek istediğin her şeye ulaş

OPTION (OPTIMIZE FOR(@DataUzunlugu = 1000)); sql komutu neyi ifade etmektedir?

OPTIMIZE komutu SQL sorgusu işletilirken SQL Server'ın sorguyu belli bir parametreye göre optimize ederek işletmesini sağlayan bir komuttur. Özellikle üzerinde index bulunmayan bir kolon üzerinden filtreleme yapılırken daha yüksek performans almak için kullanılıyormuş. Benim anladığım kadarı ile bu az bilinen bir yöntem.

Örneğin;

DECLARE @Type VARCHAR ( 50 )
SET @Type = 'Business'
SELECT *
FROM Customer
WHERE CustomerType = @Type
OPTION ( OPTIMIZE FOR ( @Type = 'Business' )); 

Bu sorguda, SQL Server, WHERE ile belirtilmiş CustomerType kolonu üzerinden tipi "Business" olan kayıtlar için optimizasyon yapar.

Sizin verdiğiniz örnekte ise benzer şekilde SQL sorgusu işletilirken "DataUzunlugu" 1000 olan kayıtlar aranırken optimizasyon gerçekleştirilir.

Aslında şurada ayrıntılı biçimde örneklerle anlatılmış:blog.sqlauthority.com/2012/04/25/sql-se...

Ayrıca, bir miktar bilgi için:blogs.msdn.com/b/sqlprogrammability/arc. . .
  • Paylaş
1

Birkan Aydin, top ile değer almış olduğum sorgunun cevabı çok geç geliyordu. Araştırdığımda option ile karşılaştım. 10 kusur saniyede dönen sorgu 70ms 'ye düştü. Performans açısından müthiş faydası oldu bana ama ezbere iş yapmak istemedim. Teşekkürler :)

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

44 Görüntülenme2 Takipçi1 Yanıt