Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » UltraLite - Datenbankverwaltung » UltraLite Performance-Tipps

 

Anpassen der Cachegröße für eine UltraLite-Datenbank

UltraLite-Datenbank Cachegrößen wachsen dynamisch aufgrund der Datentransaktionen und innerhalb des mit Parametern festgelegten verfügbaren Speichers auf dem Gerät. Normalerweise brauchen Sie keine Parameter anzugeben. Wenn Ihre Datenbank groß ist (z. B. 400 MB), kann es sinnvoll sein, den Parameter CACHE_MAX_SIZE vom Standardwert auf die maximal zulässige Größe einzustellen. UltraLite weist basierend auf der maximalen Cachegröße Datenstrukturen zu. Der Standardwert ist nicht sehr groß: Sie müssen daher explizit einen hohen Maximalwert einstellen, um diesen zusätzlichen Speicher nutzen zu können. Eine maximale Cachegröße festzulegen, die viel größer ist als die maximale tatsächliche Datenbankdatei, bringt keine Vorteile.

Hinweis

Dynamische Cachedimensionierung wird von UltraLite Java Edition-Datenbanken nicht unterstützt. Weitere Hinweise zu Cachegrößen von UltraLite Java Edition-Datenbanken finden Sie unter Cachegrößen der UltraLite Java Edition-Datenbank.

Obwohl eine explizite Anpassung der Cachegröße nicht erforderlich ist, kann dies aber sinnvoll sein, wenn Ihre UltraLite-Datenbankanwendung vom Betriebssystem auf mobilen Geräten gezwungen wird, ihre Speicherbelegung zu reduzieren.

UltraLite verkleinert den Cache nicht automatisch. Die Datenbank-Cachegröße kann nur mit der cache_allocation-Datenbankoption in Ihrer Anwendung explizit gesteuert werden.

 Anpassen der UltraLite-Datenbank-Cachegröße in einer UltraLite C++-Anwendung

Diese Prozedur veranschaulicht die dynamische Cachedimensionierung mit der UltraLite C++-API als Beispiel. Es wird davon ausgegangen, dass Sie eine vorhandene C++-Anwendung aktualisieren möchten, damit sie explizit die Cachegröße steuert.

  1. Aktualisieren Sie die Verbindungszeichenfolge, die für die Verbindung mit Ihrer UltraLite-Datenbank verwendet wird, um Ihre Cachegröße einzustellen.

    In diesem Beispiel legen Sie die maximale Cachegröße mit 100 MB fest:

    static ul_char const * ConnectionParms =
        "UID=DBA;PWD=sql;DBF=sample.udb;CACHE_MAX_SIZE=100m";
  2. Als Reaktion auf die Meldung des Betriebssystems, dass zu wenig Speicher zur Verfügung steht, passen Sie die die Datenbankoption cache_allocation an, nachdem Sie sich mit der Datenbank verbunden haben.

    In diesem Beispiel wird die Cachezuweisung auf die Hälfte reduziert, um die Größe des Caches neu zu bestimmen. Dabei wird der folgende Code verwendet:

    ULConnection * conn = ULDatabaseManager::OpenConnection(ConnectionParms);
    ul_u_long percent;
    percent = conn->GetDatabasePropertyInt( "cache_allocation" );
    conn->SetDatabaseOptionInt( "cache_allocation", percent / 2 );
 Siehe auch