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. Dalam peristiwa tidak mungkin database memiliki lebih dari satu pengikatan aktif.

Konvensi sintaks transact-SQL

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 tersebut. 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 (Transact-SQL).

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_Hekatonsumber 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.