sys.sp_xtp_bind_db_resource_pool (Transact-SQL)sys.sp_xtp_bind_db_resource_pool (Transact-SQL)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Associa o banco de dados do OLTP na memóriaIn-Memory OLTP especificado para o pool de recursos especificado.Binds the specified OLTP na memóriaIn-Memory OLTP database to the specified resource pool. O banco de dados e o pool de recursos devem existir antes de executar o sys.sp_xtp_bind_db_resource_pool.Both the database and the resource pool must exist prior to executing sys.sp_xtp_bind_db_resource_pool.

Este procedimento do sistema cria uma associação entre o pool do Administrador de Recursos identificado pelo resource_pool_name e o banco de dados identificado por database_nameThis system procedure creates a binding between the Resource Governor pool identified by resource_pool_name, and the database identified by database_name. Não é necessário que o banco de dados tenha todos os objetos com otimização de memória no momento da associação.It is not required that the database has any memory-optimized objects at the time of binding. Na ausência de objetos com otimização de memória, nenhuma memória é obtida do pool de recursos.In the absence of memory-optimized objects, there is no memory taken from the resource pool. Esta associação será usada pelo Administrador de Recursos para gerenciar a memória alocada por alocadores do OLTP na memóriaIn-Memory OLTP conforme descrito abaixo.This binding will be used by Resource Governor to manage memory allocated by OLTP na memóriaIn-Memory OLTP allocators as described below.

Se já houver uma associação no local para um determinado banco de dados, o procedimento retornará um erro.If there is already a binding in place for a given database, the procedure returns an error. Em nenhuma hipótese um banco de dados pode ter mais de uma associação ativa.In no event may a database have more than one active binding.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

sys.sp_xtp_bind_db_resource_pool 'database_name', 'resource_pool_name'  

ArgumentosArguments

database_namedatabase_name
O nome de um banco de dados habilitado para OLTP na memóriaIn-Memory OLTP existente.The name of an existing OLTP na memóriaIn-Memory OLTP enabled database.

resource_pool_nameresource_pool_name
O nome de um pool de recursos existente.The name of an existing resource pool.

MensagensMessages

Quando um erro ocorrer, o sp_xtp_bind_db_resource_pool retornará uma dessas mensagens.When an error occurs sp_xtp_bind_db_resource_pool returns one of these messages.

Banco de dados não existeDatabase does not exist
Database_name deve se referir a um banco de dados existente.Database_name must refer to an existing database. Se não houver nenhum banco de dados com a ID especificada, a mensagem a seguir será retornada:If there is no database with the specified ID, the following message is returned:
Identificação do banco de dados %d não existe. Use uma ID de banco de dados válido para esta associação.Database ID %d does not exist. Please use a valid database ID for this binding.

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.  

Banco de dados é um banco de dados do sistemaDatabase is a system database
As tabelas do OLTP na memóriaIn-Memory OLTP não podem ser criadas em bancos de dados do sistema.OLTP na memóriaIn-Memory OLTP tables cannot be created in system databases. Portanto, isso é inválido para criar uma associação de memória do OLTP na memóriaIn-Memory OLTP para esse banco de dados.Thus it is invalid to create a binding of OLTP na memóriaIn-Memory OLTP memory for such a database. O seguinte erro é retornado.The following error is returned:
Database_name %s se refere a um banco de dados do sistema. Pools de recursos só podem ser associados a um banco de dados do usuário.Database_name %s refers to a system database. Resource pools may only be bound to a user database.

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.  

Pool de recursos não existeResource Pool does not exist
O pool de recursos identificado pelo resource_pool_name deve existir antes de executar o sp_xtp_bind_db_resource_pool.The resource pool identified by resource_pool_name must exist prior to executing sp_xtp_bind_db_resource_pool. Se não houver nenhum pool com a ID especificada, o erro a seguir será retornado:If there is no pool with the specified ID, the following error is returned:
O Pool de recursos %s não existe. Insira um nome de pool de recursos válidos.Resource Pool %s does not exist. Please enter a valid resource pool name.

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 refere-se a um pool do sistema reservadoPool_name refers to a reserved system pool
Os nomes de pool "INTERNAL" e "DEFAULT" são reservados para pools do sistema.The pool names "INTERNAL" and "DEFAULT" are reserved for system pools. Não é válido associar explicitamente um banco de dados a nenhum deles.It is not valid to explicitly bind a database to either of these. Se um nome do pool do sistema é inserido, o erro a seguir será retornado:If a system pool name is entered, the following error is returned:
O Pool de recursos %s é um pool de recursos do sistema. Pools de recursos do sistema não podem ser associados explicitamente para um banco de dados usando esse procedimento.Resource Pool %s is a system resource pool. System resource pools may not be explicitly bound to a database using this procedure.

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.  

Banco de dados já está associado a outro Pool de recursosDatabase is already bound to another Resource Pool
Um banco de dados pode estar associado a apenas um pool de recursos de cada vez.A database can be bound to only one resource pool at any time. As associações de banco de dados a pools de recursos devem ser explicitamente removidas antes de serem associadas a outro pool.Database bindings to resource pools must be explicitly removed before they can be bound to another pool. Ver sys.sp_xtp_unbind_db_resource_pool (Transact-SQL).See sys.sp_xtp_unbind_db_resource_pool (Transact-SQL).
Banco de dados %s já está associado ao pool de recursos %s. Você deve desassociar antes de criar uma nova associação.Database %s is already bound to resource pool %s. You must unbind before you can create a new binding.

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.  

Quando obtém êxito, o sp_xtp_bind_db_resource_pool retorna a seguinte mensagem.When successful, sp_xtp_bind_db_resource_pool returns the following message.

Associação com êxitoSuccessful Binding
Quando há êxito, a função retorna a seguinte mensagem de êxito, que é registrada no SQL ERRORLOGWhen successful, the function returns the following success message, which is logged in the SQL ERRORLOG
Uma associação de recursos foi criada com êxito entre o banco de dados com a identificação %d e o pool de recursos com ID %d.A resource binding has been successfully created between the database with ID %d and the resource pool with ID %d.

ExemplosExamples

A.A. O código de exemplo a seguir associa um banco de dados Hekaton_DB ao pool de recursos Pool_Hekaton.The following code example binds the database Hekaton_DB to the resource pool Pool_Hekaton.

sys.sp_xtp_bind_db_resource_pool N'Hekaton_DB', N'Pool_Hekaton'  

A associação entra em vigor da próxima vez que o banco de dados é colocado online.The binding takes effect the next time the database is brought online.

B.B. Exemplo expandido de exemplo que inclui algumas verificações básicas acima.Expanded example of above example which includes some basic checks. Execute o seguinte Transact-SQLTransact-SQL em SQL Server Management StudioSQL Server Management Studio:Execute the following Transact-SQLTransact-SQL in SQL Server Management StudioSQL 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
    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 

RequisitosRequirements

  • O banco de dados especificado por database_name e o pool de recursos especificado por resource_pool_name devem existir antes de associá-los.Both the database specified by database_name and the resource pool specified by resource_pool_name must exist prior to binding them.

  • Requer a permissão CONTROL SERVER.Requires CONTROL SERVER permission.

Consulte tambémSee Also

Associar um banco de dados com tabelas com otimização de memória a um pool de recursos Bind a Database with Memory-Optimized Tables to a Resource Pool
sys.sp_xtp_unbind_db_resource_pool (Transact-SQL)sys.sp_xtp_unbind_db_resource_pool (Transact-SQL)