Aracılığıyla paylaş


Yürütme planına genel bakış

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

Sorguları yürütebilmek için, SQL Server Veritabanı Altyapısının gerekli verilere erişmek ve işlemek için verimli bir yol belirlemek için deyimini analiz etmesi gerekir. Bu analiz, Sorgu İyileştiricisi adlı bir bileşen tarafından işlenir. Sorgu İyileştiricisi girişi sorgudan, veritabanı şemasından (tablo ve dizin tanımları) ve veritabanı istatistiklerinden oluşur. Sorgu İyileştiricisi, sorgu yürütme planı, bazen sorgu planları veya yürütme planlarıolarak adlandırılan, bir veya daha fazlaoluşturur. Sorgu İyileştiricisi, derleme süresini dengelemek ve iyi bir sorgu planı bulmak için en uygun planı planlamak için bir dizi buluşsal çözüm kullanarak bir sorgu planı seçer.

İpucu

Sorgu işleme ve sorgu yürütme planları hakkında daha fazla bilgi için, Sorgu işleme mimarisi kılavuzunun SELECT deyimlerini ve Yürütme planı önbelleğe alma ve yeniden kullanma iyileştirme bölümlerine bakın.

SQL Server Management Studio ve Azure Data Studio'da yürütme planlarını görüntüleme hakkında bilgi için bkz. Yürütme planlarını görüntüleme ve kaydetme.

Sorgu yürütme planı aşağıdakilerin tanımıdır:

  • Kaynak tablolara erişilen sıra.

    Genellikle, veritabanı sunucusunun sonuç kümesini oluşturmak için temel tablolara erişebildiği birçok dizi vardır. Örneğin, bir SELECT deyimi üç tabloya başvuruyorsa, veritabanı sunucusu önce TableAerişebilir, TableAeşleşen satırları ayıklamak için TableB verilerini kullanabilir ve ardından TableB'dan veri ayıklamak için TableC verilerini kullanabilir. Veritabanı sunucusunun tablolara erişebildiği diğer sıralar şunlardır:
    TableC, TableB, TableAveya
    TableB, TableA, TableCveya
    TableB, TableC, TableAveya
    TableC, TableA, TableB

  • Her tablodan veri ayıklamak için kullanılan yöntemler.

    Genel olarak, her tablodaki verilere erişmek için farklı yöntemler vardır. Belirli anahtar değerlerine sahip yalnızca birkaç satır gerekiyorsa, veritabanı sunucusu bir dizin kullanabilir. Tablodaki tüm satırlar gerekliyse, veritabanı sunucusu dizinleri yoksayabilir ve tablo taraması gerçekleştirebilir. Tablodaki tüm satırlar gerekliyse ancak anahtar sütunları ORDER BYolan bir dizin varsa, tablo taraması yerine dizin taraması yapmak ayrı bir sonuç kümesi kaydedebilir. Tablo küçükse, tablo taramaları tabloya neredeyse tüm erişim için en verimli yöntem olabilir.

  • Hesaplamaları hesaplamak için kullanılan yöntemler ve her tablodan verileri filtreleme, toplama ve sıralama.

    Tablolardan verilere erişildiğinde, skaler değerleri hesaplama ve sorgu metninde tanımlandığı gibi verileri toplama ve sıralama gibi farklı yöntemler vardır. Örneğin, GROUP BY veya ORDER BY yan tümcesi kullanılırken ve örneğin WHERE veya HAVING yan tümcesi kullanılırken verileri filtreleme.