Bagikan melalui


Konfigurasi server: ambang biaya untuk paralelisme

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Artikel ini menjelaskan cara mengonfigurasi cost threshold for parallelism opsi konfigurasi server di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.

Tentang batas biaya untuk paralelisme

Opsi cost threshold for parallelism menentukan ambang batas di mana SQL Server mempertimbangkan rencana paralel pada komputer dengan lebih dari satu prosesor logis. Opsi cost threshold for parallelism dapat diatur ke nilai apa pun dari 0 hingga 32.767.

Biaya adalah jumlah perkiraan biaya operator dalam rencana kueri (misalnya, CPU dan I/O). Ini adalah ukuran relatif yang hanya digunakan untuk pemilihan rencana; ini tidak mengukur runtime aktual.

Komponen Transact-SQL tertentu dapat menghambat rencana paralel. Misalnya, fungsi skalar yang tidak dapat di-inline (UDF), modifikasi variabel tabel, dan panggilan sistem tertentu. SQL Server mengevaluasi alternatif paralel hanya ketika perkiraan biaya rencana serial terbaik melebihi nilai cost threshold for parallelism, dan kemudian dapat memilih rencana paralel yang lebih murah.

Batasan

SQL Server mengabaikan cost threshold for parallelism nilai dalam kondisi berikut:

  • Komputer Anda hanya memiliki satu prosesor logis.

  • Hanya satu prosesor logis yang tersedia untuk SQL Server karena affinity mask opsi konfigurasi.

  • max degree of parallelism Opsi konfigurasi server diatur ke 1.

Rekomendasi

Opsi ini adalah opsi lanjutan, dan harus diubah hanya oleh profesional database berpengalaman.

Nilai 5 default adalah titik awal, bukan rekomendasi. Pada sistem SQL Server modern, menaikkannya dapat membantu menjaga kueri OLTP yang lebih kecil tetap dijalankan dengan rencana serial. Gunakan kenaikan kecil dan amati siklus bisnis penuh sebelum perubahan lebih lanjut. Lakukan pengujian aplikasi dengan nilai yang lebih tinggi dan lebih rendah jika diperlukan untuk mengoptimalkan performa aplikasi.

Nota

Di Azure SQL Database, Anda tidak dapat mengatur cost threshold for parallelism. Gunakan MAXDOP untuk mengontrol paralelisme sebagai gantinya. Untuk informasi selengkapnya, lihat Mengubah MAXDOP default di Azure SQL Database dan Azure SQL Managed Instance.

Dalam kasus tertentu, rencana paralel mungkin dipilih meskipun biaya rencana kueri kurang dari nilai cost threshold for parallelism saat ini. Keputusan untuk menggunakan paket paralel atau serial didasarkan pada perkiraan biaya yang disediakan sebelumnya dalam proses pengoptimalan. Untuk informasi selengkapnya, lihat Panduan Arsitektur Pemrosesan Kueri.

Komentar

Untuk melihat apakah cost threshold for parallelism opsi konfigurasi server diatur terlalu tinggi atau terlalu rendah untuk beban kerja Anda, cari indikator berikut.

Ambang biaya untuk pengaturan paralelisme Description
Terlalu rendah - Terlalu banyak kueri dengan penggunaan CPU rendah berjalan secara paralel.

- Di Query Store, banyak paket telah is_parallel_plan diatur ke 1.

- CXPACKET dan CXCONSUMER mendominasi statistik jenis tunggu. Anda mungkin juga melihat THREADPOOL dan SOS_SCHEDULER_YIELD menunggu.
Terlalu tinggi - Tidak cukup kueri yang membebani CPU diproses secara paralel, sehingga pemanfaatan CPU lebih tinggi dari yang optimal.

- SOS_SCHEDULER_YIELD mendominasi statistik jenis tunggu.

Izin

Jalankan izin tanpa sp_configure parameter atau hanya dengan parameter pertama yang diberikan kepada semua pengguna secara default. Untuk menjalankan sp_configure dengan kedua parameter untuk mengubah opsi konfigurasi atau untuk menjalankan RECONFIGURE pernyataan, pengguna harus diberikan ALTER SETTINGS izin tingkat server. Izin ALTER SETTINGS secara implisit dipegang oleh peran server tetap sysadmin dan serveradmin .

Menggunakan SQL Server Management Studio

  1. Di Object Explorer, klik kanan server dan pilih Properti.

  2. Pilih simpul Tingkat Lanjut .

  3. Di bawah Paralelisme, ubah cost threshold for parallelism opsi ke nilai yang Anda inginkan. Ketik atau pilih nilai dari 0 hingga 32.767.

Menggunakan Transact-SQL

Contoh ini menunjukkan cara menggunakan sp_configure untuk mengatur nilai cost threshold for parallelism ke 20.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 20;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

Untuk informasi selengkapnya, lihat Opsi konfigurasi server.

Tindak lanjut: Setelah Anda mengonfigurasi ambang biaya untuk opsi paralelisme

Pengaturan berlaku segera tanpa memulai ulang server.