Ringkasan
Tambahkan atribut rencana eksekusi kueri EstimateRowsWithoutRowGoal baru ke SQL Server 2017 Pembaruan Kumulatif 3 (CU3) dan Microsoft SQL Server 2016 Paket Layanan 2 (SP2).
Ketika Pengoptimal Kueri memperkirakan biaya rencana eksekusi kueri, biasanya mengasumsikan bahwa semua baris yang memenuhi syarat dari semua sumber harus diproses. Namun, beberapa kueri menyebabkan Pengoptimal Kueri mencari rencana yang akan mengembalikan lebih sedikit baris lebih cepat. Hal ini dapat terjadi jika kueri menggunakan klausa TOP , petunjuk kueri FAST number_rows , klausa IN atau EXISTS , atau pernyataan SET ROWCOUNT { number | @number\_var } . Dalam kasus ini, pengoptimal menggunakan tujuan baris saat memperkirakan rencana kueri. Jika rencana target baris diterapkan, perkiraan jumlah baris dalam rencana eksekusi kueri akan berkurang. Hal ini dikarenakan rencana mengasumsikan bahwa sejumlah kecil baris harus diproses untuk mencapai tujuan baris.
catatan Perkiraan yang dibuat dengan menggunakan tujuan baris adalah perkiraan. Jika distribusi data aktual tidak seragam, distribusi data mungkin kurang dari jumlah baris sebenarnya yang harus diproses. Oleh karena itu, hal tersebut dapat membuat rencana kueri yang tidak efisien. Sebagai solusi untuk masalah ini, Anda dapat menggunakan opsi kueri GUNAKAN PETUNJUK ('DISABLE_OPTIMIZER_ROWGOAL') atau Bendera Pelacakan 4138.
Untuk informasi selengkapnya, lihat Pembaruan memperkenalkan argumen petunjuk kueri USE HINT di SQL Server 2016. Namun, mungkin sulit untuk mengidentifikasi dalam kueri kompleks apakah tujuan baris diterapkan dan seberapa besar pengaruhnya terhadap pilihan rencana.
Dengan menggunakan atribut EstimateRowsWithoutRowGoal , Anda dapat membandingkan hasil dengan atribut EstimateRows untuk melihat seberapa besar tujuan baris memengaruhi perkiraan Pengoptimal Kueri.
catatan Jika tujuan baris tidak diterapkan ke operator rencana kueri tertentu, atribut ini tidak disertakan.
Informasi Selengkapnya
Pembaruan ini disertakan dalam pembaruan kumulatif berikut untuk SQL Server:
Pembaruan Kumulatif 3 untuk SQL Server 2017
Tentang pembaruan kumulatif untuk SQL Server:
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Pembaruan kumulatif terbaru untuk SQL Server 2017
Informasi paket layanan untuk SQL Server
Pembaruan ini diperkenalkan dalam paket layanan berikut untuk SQL Server:
Paket Layanan 2 untuk SQL Server 2016
Paket Layanan 3 untuk SQL Server 2014
Tentang paket layanan untuk SQL Server:
Paket layanan bersifat kumulatif. Setiap paket layanan baru berisi semua perbaikan yang ada dalam paket layanan sebelumnya, bersama dengan perbaikan baru apa pun. Rekomendasi kami adalah menerapkan paket layanan terbaru dan pembaruan kumulatif terbaru untuk paket layanan tersebut. Anda tidak perlu menginstal paket layanan sebelumnya sebelum menginstal paket layanan terbaru. Gunakan Tabel 1 dalam artikel berikut untuk menemukan informasi selengkapnya tentang paket layanan terbaru dan pembaruan kumulatif terbaru.
Cara menentukan versi, edisi, dan tingkat pembaruan SQL Server dan komponennya
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.