Freigeben über


sys.sp_xtp_bind_db_resource_pool (Transact-SQL)

Bindet die angegebene In-Memory OLTP-Datenbank an den angegebenen Ressourcenpool. Vor der Ausführung von sys.sp_xtp_bind_db_resource_pool müssen die Datenbank und der Ressourcenpool vorhanden sein.

Diese Systemprozedur erstellt eine Bindung zwischen dem durch resource_pool_name angegebenen Ressourcenkontrollenpool und der durch database_name angegebenen Datenbank. Es ist nicht erforderlich, dass die Datenbank zur Zeit der Bindung speicheroptimierte Objekte enthält. Falls keine speicheroptimierten Objekte vorhanden sind, wird kein Arbeitsspeicher aus dem Ressourcenpool belegt. Diese Bindung wird von der Ressourcenkontrolle verwendet, um den durch In-Memory OLTP-Zuordnungen belegten Arbeitsspeicher zu verwalten, wie nachfolgend beschrieben.

Wenn für eine bestimmte Datenbank bereits eine Bindung besteht, gibt die Prozedur einen Fehler zurück. Eine Datenbank darf immer nur über eine aktive Bindung verfügen.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Gilt für: SQL Server (SQL Server 2014 bis aktuelle Version).

Syntax

sys.sp_xtp_bind_db_resource_pool 'database_name', 'resource_pool_name'

Argumente

  • database_name
    Der Name einer vorhandenen In-Memory OLTP-aktivierten Datenbank.

  • resource_pool_name
    Der Name eines vorhandenen Ressourcenpools.

Meldungen

Bei einem Fehler gibt sp_xtp_bind_db_resource_pool eine der folgenden Meldungen zurück.

  • Die Datenbank ist nicht vorhanden.
    'Database_name' muss auf eine vorhandene Datenbank verweisen. Wenn keine Datenbank mit der angegebenen ID vorhanden ist, wird die folgende Meldung zurückgegeben:
    Die Datenbank-ID %d ist nicht vorhanden. Verwenden Sie eine gültige Datenbank-ID für diese Bindung.

    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.
    
  • Die Datenbank ist eine Systemdatenbank.
    In-Memory OLTP-Tabellen können nicht in Systemdatenbanken erstellt werden. Daher ist es nicht zulässig, In-Memory OLTP-Arbeitsspeicher für eine derartige Datenbank zu binden. Der folgende Fehler wird zurückgegeben:
    'Database_name' %s verweist auf eine Systemdatenbank. Ressourcenpools können nur an eine Benutzerdatenbank gebunden werden.

    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.
    
  • Der Ressourcenpool ist nicht vorhanden.
    Der durch resource_pool_name angegebene Ressourcenpool muss vorhanden sein, bevor sp_xtp_bind_db_resource_pool ausgeführt wird. Wenn kein Pool mit der angegebenen ID vorhanden ist, wird folgender Fehler zurückgegeben:
    Der %s-Ressourcenpool ist nicht vorhanden. Geben Sie einen gültigen Ressourcenpoolnamen ein.

    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' verweist auf einen reservierten Systempool.
    Die Poolnamen "INTERNAL" und "DEFAULT" sind für Systempools reserviert. Es ist nicht zulässig, eine Datenbank explizit an einen der beiden zu binden. Bei Eingabe eines Systempoolnamens wird der folgende Fehler zurückgegeben:
    Der %s-Ressourcenpool ist ein Systemressourcenpool. Systemressourcenpools dürfen mit dieser Prozedur nicht explizit an eine Datenbank gebunden werden.

    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.
    
  • Die Datenbank ist bereits an einen anderen Ressourcenpool gebunden.
    Eine Datenbank kann jeweils nur an einen Ressourcenpool gebunden werden. Datenbankbindungen an Ressourcenpools müssen explizit entfernt werden, bevor eine Bindung an einen anderen Pool erfolgen kann. Siehe sys.sp_xtp_unbind_db_resource_pool (Transact-SQL).
    Die %s-Datenbank ist bereits an den %s-Ressourcenpool gebunden. Sie müssen die Bindung aufheben, bevor Sie eine neue Bindung erstellen können.

    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.
    

Bei erfolgreicher Ausführung gibt sp_xtp_bind_db_resource_pool die folgende Meldung zurück.

  • Erfolgreiche Bindung
    Bei erfolgreicher Ausführung gibt die Funktion die folgende Erfolgsmeldung zurück, die in SQL ERRORLOG protokolliert wird.
    Zwischen der Datenbank mit der ID %d und dem Ressourcenpool mit der ID %d wurde erfolgreich eine Ressourcenbindung erstellt.

Beispiel

Im folgenden Codebeispiel wird die Hekaton_DB-Datenbank an den Pool_Hekaton-Ressourcenpool gebunden.

sys.sp_xtp_bind_db_resource_pool 'Hekaton_DB', 'Pool_Hekaton'

Die Bindung wird wirksam, wenn die Datenbank das nächste Mal online geschaltet wird.

Anforderungen

  • Sowohl die durch database_name angegebene Datenbank als auch der durch resource_pool_name angegebene Ressourcenpool müssen vor dem Binden vorhanden sein.

  • Erfordert die CONTROL SERVER-Berechtigung.

Siehe auch

Verweis

sys.sp_xtp_unbind_db_resource_pool (Transact-SQL)

Konzepte

Binden einer Datenbank mit speicheroptimierten Tabellen an einen Ressourcenpool