Поделиться через


sys.sp_xtp_bind_db_resource_pool (Transact-SQL)

Привязывает указанную базу данных служб In-Memory OLTP к указанному пулу ресурсов. И база данных, и пул ресурсов должны существовать до выполнения sys.sp_xtp_bind_db_resource_pool.

Эта системная процедура создает привязку между пулом Resource Governor, определяемого аргументом resource_pool_name, и базой данных, определяемой аргументом database_name. Наличие во время привязки в базе данных каких-либо объектов, которые оптимизированы для памяти, не является обязательным. При отсутствии объектов, оптимизированных для памяти, из пула ресурсов не изымаются ресурсы памяти. Эта привязка будет использоваться Resource Governor для управления памятью, выделенной распределителями In-Memory OLTP, как описано ниже.

Если уже существует привязка для конкретной базы данных, процедура возвращает ошибку. Ни при каких обстоятельствах база данных не может иметь более одной активной привязки.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2014 до текущей версии).

Синтаксис

sys.sp_xtp_bind_db_resource_pool 'database_name', 'resource_pool_name'

Аргументы

  • database_name
    Имя существующей базы данных с подключенными In-Memory OLTP.

  • resource_pool_name
    Имя существующего пула ресурсов.

Сообщения

При возникновении ошибки sp_xtp_bind_db_resource_pool возвращает одно из этих сообщений.

  • База данных не существует
    Аргумент database_name должен ссылаться на существующую базу данных. Если база данных с указанным идентификатором не существует, возвращается следующее сообщение:
    «База данных с идентификатором %d не существует». Для этой привязки следует использовать допустимый идентификатор базы данных.

    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.
    
  • База данных является системной.
    Таблицы In-Memory OLTP нельзя создать в системных базах данных. Таким образом, не допускается создание привязки памяти In-Memory OLTP для такой базы данных. Возвращается следующая ошибка:
    «Database_name %s ссылается на системную базу данных». Пулы ресурсов могут быть привязаны только к пользовательской базе данных.

    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.
    
  • Пул ресурсов не существует
    Пул ресурсов, определяемый аргументом resource_pool_name, должен существовать до выполнения sp_xtp_bind_db_resource_pool. Если пул с указанным идентификатором не существует, возвращается следующая ошибка:
    «Пул ресурсов %s не существует». Введите допустимое имя пула ресурсов.

    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 ссылается на зарезервированный системный пул
    Имена пулов «INTERNAL» и «DEFAULT» зарезервированы для системных пулов. Явная привязка базы данных к одному из этих пулов недопустима. Если введено имя системного пула, то возвращается следующая ошибка:
    «Пул ресурсов %s является системным». Системные пулы ресурсов не могут быть явно привязаны к базе данных с помощью этой процедуры.

    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.
    
  • База данных уже привязаны к другому пулу ресурсов
    База данных может быть привязана только к одному пулу ресурсов в любой момент времени. Привязки баз данных к пулам ресурсов необходимо явно удалить перед тем, как они могут быть привязаны к другому пулу. См. раздел sys.sp_xtp_unbind_db_resource_pool (Transact-SQL).
    База данных %s уже привязана к пулу ресурсов %s. Перед созданием новой привязки необходимо отменить существующую.

    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.
    

При успешном выполнении sp_xtp_bind_db_resource_pool возвращает следующее сообщение.

  • Привязка успешно выполнена
    При успешном выполнении функция возвращает следующее сообщение об успешном выполнении, которое регистрируется в SQL ERRORLOG
    Привязка ресурсов была успешно создана между базой данных с идентификатором %d и пулом ресурсов с идентификатором %d.

Пример

В следующем примере кода выполняется привязка базы данных Hekaton_DB с пулом ресурсов Pool_Hekaton.

sys.sp_xtp_bind_db_resource_pool 'Hekaton_DB', 'Pool_Hekaton'

Привязка вступит в силу при следующем переводе базы данных в режим «в сети».

Требования

  • И база данных, указанная с помощью аргумента database_name, и пул ресурсов, указанный с помощью аргумента resource_pool_name, должны существовать до их привязки.

  • Необходимо разрешение CONTROL SERVER.

См. также

Справочник

sys.sp_xtp_unbind_db_resource_pool (Transact-SQL)

Основные понятия

привязать базу данных с таблицами, оптимизированными для памяти, к пулу ресурсов