Compartilhar via


sys.sp_xtp_bind_db_resource_pool (Transact-SQL)

Associa o banco de dados do OLTP na memória especificado para o pool de recursos especificado. O banco de dados e o pool de recursos devem existir antes de executar o 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_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. Na ausência de objetos com otimização de memória, nenhuma memória é obtida do pool de recursos. Esta associação será usada pelo Administrador de Recursos para gerenciar a memória alocada por alocadores do OLTP na memória conforme descrito abaixo.

Se já houver uma associação no local para um determinado banco de dados, o procedimento retornará um erro. Em nenhuma hipótese um banco de dados pode ter mais de uma associação ativa.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Aplica-se a: SQL Server (do SQL Server 2014 à versão atual).

Sintaxe

sys.sp_xtp_bind_db_resource_pool 'database_name', 'resource_pool_name'

Argumentos

  • database_name
    O nome de um banco de dados habilitado para OLTP na memória existente.

  • resource_pool_name
    O nome de um pool de recursos existente.

Mensagens

Quando um erro ocorrer, o sp_xtp_bind_db_resource_pool retornará uma dessas mensagens.

  • O banco de dados não existe
    Database_name deve se referir a um banco de dados existente. Se não houver nenhum banco de dados com a ID especificada, a mensagem a seguir será retornada:
    A ID do banco de dados %d não existe. Use uma ID de banco de dados válida para esta associação.

    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.
    
  • Este é um banco de dados do sistema
    As tabelas do OLTP na memória não podem ser criadas em bancos de dados do sistema. Portanto, isso é inválido para criar uma associação de memória do OLTP na memória para esse banco de dados. O seguinte erro é retornado.
    Database_name %s refere-se a um banco de dados do sistema. Os pools de recursos só podem ser associados a um banco de dados de usuário.

    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.
    
  • O pool de recursos não existe
    O pool de recursos identificado pelo resource_pool_name deve existir antes de executar o sp_xtp_bind_db_resource_pool. Se não houver nenhum pool com a ID especificada, o erro a seguir será retornado:
    O pool de recursos %s não existe. Insira um nome válido para o pool de recursos.

    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 reservado
    Os nomes de pool “INTERNAL” e “DEFAULT” são reservados para pools do sistema. Não é válido associar explicitamente um banco de dados a nenhum deles. Se um nome do pool do sistema é inserido, o erro a seguir será retornado:
    O pool de recursos %s é um pool de recursos do sistema. Os pools de recursos do sistema não podem ser associados explicitamente a um banco de dados usando esse procedimento.

    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.
    
  • O banco de dados já está associado a outro pool de recursos
    Um banco de dados pode estar associado a apenas um pool de recursos de cada vez. As associações de banco de dados a pools de recursos devem ser explicitamente removidas antes de serem associadas a outro pool. Consulte sys.sp_xtp_unbind_db_resource_pool (Transact-SQL).
    O banco de dados %s já está associado ao pool de recursos %s. Desassocie-o para criar uma nova associação.

    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.

  • Associação com êxito
    Quando há êxito, a função retorna a seguinte mensagem de êxito, que é registrada no SQL ERRORLOG
    Uma associação de recursos foi criada com êxito entre o banco de dados com ID %d e o pool de recursos com ID %d.

Exemplo

O código de exemplo a seguir associa um banco de dados Hekaton_DB ao pool de recursos Pool_Hekaton.

sys.sp_xtp_bind_db_resource_pool 'Hekaton_DB', 'Pool_Hekaton'

A associação entra em vigor da próxima vez que o banco de dados é colocado online.

Requisitos

  • O banco de dados especificado por database_name e o pool de recursos especificado por resource_pool_name devem existir antes de associá-los.

  • Requer a permissão CONTROL SERVER.

Consulte também

Referência

sys.sp_xtp_unbind_db_resource_pool (Transact-SQL)

Conceitos

Associar um banco de dados com tabelas com otimização de memória a um pool de recursos