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