sys.sp_xtp_bind_db_resource_pool (T-SQL)
Berlaku untuk: SQL Server
Mengikat database OLTP Dalam Memori yang ditentukan ke kumpulan sumber daya yang ditentukan. Database dan kumpulan sumber daya harus ada sebelum mengeksekusi sys.sp_xtp_bind_db_resource_pool
.
Prosedur sistem ini membuat pengikatan antara kumpulan Resource Governor yang diidentifikasi oleh @resource_pool_name, dan database yang diidentifikasi oleh @database_name. Tidak diperlukan bahwa database memiliki objek yang dioptimalkan memori pada saat pengikatan. Dengan tidak adanya objek yang dioptimalkan memori, tidak ada memori yang diambil dari kumpulan sumber daya. Pengikatan ini akan digunakan oleh Resource Governor untuk mengelola memori yang dialokasikan oleh alokator OLTP Dalam Memori.
Jika sudah ada pengikatan untuk database tertentu, prosedur mengembalikan kesalahan. Database tidak dapat memiliki lebih dari satu pengikatan aktif.
Sintaks
sys.sp_xtp_bind_db_resource_pool
[ @database_name = ] 'database_name'
, [ @resource_pool_name = ] 'resource_pool_name'
[ ; ]
Argumen
[ @database_name = ] 'database_name'
Nama database yang diaktifkan OLTP Dalam Memori yang ada. @database_name adalah sysname.
[ @resource_pool_name = ] 'resource_pool_name'
Nama kumpulan sumber daya yang ada. @resource_pool_name adalah sysname.
Pesan
Ketika terjadi sp_xtp_bind_db_resource_pool
kesalahan, mengembalikan salah satu pesan ini.
Database tidak ada
@database_name harus merujuk ke database yang sudah ada. Jika tidak ada database dengan ID yang ditentukan, pesan berikut dikembalikan:
ID Database %d tidak ada. Gunakan ID database yang valid untuk pengikatan ini.
Msg 911, Level 16, State 18, Procedure sp_xtp_bind_db_resource_pool_internal, Line 51
Database 'Hekaton_DB213' does not exist. Make sure that the name is entered correctly.
Database adalah database sistem
Tabel OLTP Dalam Memori tidak dapat dibuat dalam database sistem. Dengan demikian tidak valid untuk membuat pengikatan memori OLTP Dalam Memori untuk database seperti itu. Kesalahan berikut dikembalikan:
Database_name %s mengacu pada database sistem. Kumpulan sumber daya mungkin hanya terikat ke database pengguna.
Msg 41371, Level 16, State 1, Procedure sp_xtp_bind_db_resource_pool_internal, Line 51
Binding to a resource pool is not supported for system database 'master'. This operation can only be performed on a user database.
Kumpulan sumber daya tidak ada
Kumpulan sumber daya yang diidentifikasi oleh @resource_pool_name harus ada sebelum mengeksekusi sp_xtp_bind_db_resource_pool
. Jika tidak ada kumpulan dengan ID yang ditentukan, kesalahan berikut dikembalikan:
Kumpulan Sumber Daya %s tidak ada. Masukkan nama kumpulan sumber daya yang valid.
Msg 41370, Level 16, State 1, Procedure sp_xtp_bind_db_resource_pool_internal, Line 51
Resource pool 'Pool_Hekaton' does not exist or resource governor has not been reconfigured.
Pool_name mengacu pada kumpulan sistem yang dipesan
Nama kumpulan "INTERNAL" dan "DEFAULT" dicadangkan untuk kumpulan sistem. Tidak valid untuk mengikat database secara eksplisit ke salah satu database ini. Jika nama kumpulan sistem dimasukkan, kesalahan berikut dikembalikan:
Kumpulan Sumber Daya %s adalah kumpulan sumber daya sistem. Kumpulan sumber daya sistem mungkin tidak terikat secara eksplisit ke database menggunakan prosedur ini.
Msg 41373, Level 16, State 1, Procedure sp_xtp_bind_db_resource_pool_internal, Line 51
Database 'Hekaton_DB' cannot be explicitly bound to the resource pool 'internal'. A database can only be bound only to a user resource pool.
Database sudah terikat ke kumpulan sumber daya lain
Database hanya dapat terikat ke satu kumpulan sumber daya kapan saja. Pengikatan database ke kumpulan sumber daya harus dihapus secara eksplisit sebelum dapat terikat ke kumpulan lain. Lihat sys.sp_xtp_unbind_db_resource_pool.
Database %s sudah terikat ke kumpulan sumber daya %s. Anda harus membatalkan ikatan sebelum dapat membuat pengikatan baru.
Msg 41372, Level 16, State 1, Procedure sp_xtp_bind_db_resource_pool_internal, Line 54
Database 'Hekaton_DB' is currently bound to a resource pool. A database must be unbound before creating a new binding.
Jika berhasil, sp_xtp_bind_db_resource_pool
mengembalikan pesan berikut.
Pengikatan berhasil
Ketika berhasil, fungsi mengembalikan pesan keberhasilan berikut, yang dicatat di log kesalahan SQL Server.
Pengikatan sumber daya telah berhasil dibuat antara database dengan ID %d dan kumpulan sumber daya dengan ID %d.
Contoh
J. Contoh kode berikut mengikat database Hekaton_DB
ke kumpulan Pool_Hekaton
sumber daya .
sys.sp_xtp_bind_db_resource_pool N'Hekaton_DB', N'Pool_Hekaton';
Pengikatan berlaku saat database dibawa secara online di lain waktu.
B. Versi yang diperluas dari contoh sebelumnya ini mencakup beberapa pemeriksaan tambahan. Jalankan Transact-SQL berikut di SQL Server Management Studio:
DECLARE @resourcePool SYSNAME = N'Pool_Hekaton';
DECLARE @database SYSNAME = N'Hekaton_DB';
-- Check whether resource pool exists
IF NOT EXISTS (
SELECT *
FROM sys.resource_governor_resource_pools
WHERE name = @resourcePool
)
BEGIN
SELECT N'Resource pool "' + @resourcePool + N'" does not exist or resource governor has not been reconfigured.';
END
-- Check whether database is already bound to a resource pool
ELSE IF EXISTS (
SELECT p.name
FROM sys.databases d
INNER JOIN sys.resource_governor_resource_pools p
ON d.resource_pool_id = p.pool_id
WHERE d.name = @database
)
BEGIN
SELECT N'Database "' + @database + N'" is currently bound to resource pool "' + @resourcePool + N'". A database must be unbound before creating a new binding.';
END
-- Bind resource pool to database.
ELSE
BEGIN
EXEC sp_xtp_bind_db_resource_pool @database,
@resourcePool;
END
Persyaratan
Database yang ditentukan oleh @database_name dan kumpulan sumber daya yang ditentukan oleh @resource_pool_name harus ada sebelum mengikatnya.
Memerlukan izin SERVER KONTROL.