Konfigurieren einer Oracle-Datenbank zur Unterstützung von ArcSDE-XML-Spalten

ArcSDE-XML-Spalten verwenden Oracle-Textkomponenten, die standardmäßig mit Oracle installiert werden. Um sie verwenden zu können, müssen Sie Benutzern Berechtigungen für diese Komponenten gewähren. Anschließend müssen die Datenbank und ArcSDE ordnungsgemäß konfiguriert und gewartet werden, um die Suchergebnisse und Performance zu optimieren, insbesondere für XML-Spalten, die in anderen Sprachen als Englisch geschrieben sind, sofern Sie anderssprachige XML-Dokumente nutzen.

Um eine gute Performance beizubehalten, ist ebenso eine sorgfältige Verwaltung der Textindizes notwendig. ArcSDE for Oracle enthält zwei Skripte, die Ihnen helfen, Ihre Datenbank für das Speichern von XML-Daten zu konfigurieren. Informationen zu diesen Skripten finden Sie unterSkripte zum Optimieren einer Oracle-Instanz für die XML-Speicherung in ArcSDE.

Wenn Sie beabsichtigen, eine Tabelle mithilfe des Inhalts einer XML-Spalte abzufragen, sollten Sie die folgenden Informationen für die Datenbank überprüfen:

Wenn die aktuellen Standardeinstellungen für die Sprache Ihrer XML-Dokumente nicht korrekt sind und keine benutzerdefinierten Texteinstellungen vorhanden sind, müssen Sie vor dem Erstellen der XML-Spalte benutzerdefinierte Texteinstellungen erstellen und mit dem ArcSDE-DBTUNE-Parameter XML_IDX_INDEX_TEXT darauf verweisen, damit Sie Ihre XML-Dokumente richtig indizieren und durchsuchen können.

Sie können die zum Indizieren der XML-Dokumente verwendeten Einstellungen auch anpassen. Hierzu müssen Sie die entsprechenden Einstellungen in Oracle erstellen und dann mit dem DBTUNE-Parameter XML_IDX_INDEX_TEXT in ArcSDE auf diese Parameter verweisen. Beim Erstellen einer XML-Spalte müssen Sie dann das DBTUNE-Schlüsselwort verwenden, das den benutzerdefinierten XML_IDX_INDEX_TEXT-Parameter enthält. Bei ArcIMS-Metadaten-Services können Sie in der entsprechenden ArcXML-Konfigurationsdatei auf einen DBTUNE-Parameter verweisen.

VorsichtVorsicht:

Ändern Sie die Indizierung der Interpunktion nicht leichtfertig. Dieselbe Einstellung wird für die Indizierung des gesamten Textes in Ihren XML-Dokumenten verwendet. Für die Werte in einem XML-Element wird die Interpunktion möglicherweise anders verwendet als für die Werte in anderen XML-Elementen.

Schritte:
  1. Melden Sie sich bei SQL*Plus als Benutzer "ctxsys" an, um dem Benutzer Berechtigungen zu gewähren, der die XML-Spalte besitzt. Geben Sie hierzu folgenden Befehl aus:
    GRANT EXECUTE ON ctx_ddl TO <mdUsername>;

    <mdUsername> ist der Benutzer, der die XML-Spalte besitzt. Bei ArcIMS-Metadaten-Services ist <mdUsername> der Benutzer, der in der ArcXML-Konfigurationsdatei des Services angegeben ist.

  2. Fragen Sie die Ansicht CTX_PARAMETERS ab, um die aktuellen Standardeinstellungen für Ihre Oracle-Installation zu ermitteln.
    SELECT * FROM ctx_parameters;
  3. Fragen Sie die Ansicht CTX_PREFERENCES ab, um die verfügbaren Einstellungen zu ermitteln. So können Sie z. B. feststellen, welcher lexikalische Scanner für die Einstellung CTXSYS.DEFAULT_LEXER verwendet wird. Hier werden auch alle von anderen Benutzern erstellten benutzerdefinierten Einstellungen beschrieben.
    SELECT * FROM ctx_preferences;
  4. Fragen Sie die Ansicht CTX_PREFERENCE_VALUES ab, um sicherzustellen, dass die Systemeinstellungen für die Sprache Ihrer XML-Dokumente richtig festgelegt sind.
    SELECT * FROM ctx_preference_values;
  5. Vergleichen Sie die Ergebnisse der oben genannten Abfragen mit den zulässigen Einstellungen für lexikalische Scanner, Wortlisten und andere Textobjekte im Oracle Text Reference Guide für Ihre Version der Datenbank.
  6. Wenn die aktuellen Standardeinstellungen für die Sprache Ihrer XML-Dokumente nicht korrekt sind und keine benutzerdefinierten Texteinstellungen vorhanden sind, müssen Sie benutzerdefinierte Texteinstellungen erstellen, damit die XML-Dokumente richtig indiziert und durchsucht werden.
  7. Fügen Sie dem DBTUNE-Parameter XML_IDX_INDEX_TEXT vor dem Erstellen der XML-Spalte die benutzerdefinierten Texteinstellungen hinzu.
  8. Überprüfen Sie vor dem Erstellen benutzerdefinierter Einstellungen die vom System bereitgestellten Textobjekte, und stellen Sie sicher, dass der lexikalische Scanner, den Sie verwenden möchten, in Ihrer Oracle-Installation verfügbar ist.
    SELECT * FROM ctx_objects;
  9. Sie können eine benutzerdefinierte Texteinstellung erstellen, die auf einen lexikalischen Scanner verweist, der im vorherigen Schritt zurückgegeben wurde.

    Wenn beispielsweise in der Liste "ctx_objects" der WORLD_LEXER zurückgegeben wurde, können Sie wie folgt eine benutzerdefinierte Texteinstellung erstellen, die auf diesen lexikalischen Scanner verweist:

    EXEC ctx_ddl.create_preference('WORLDLEXER', 'WORLD_LEXER');

  10. Legen Sie den DBTUNE-Parameter XML_IDX_INDEX_TEXT auf die Einstellung fest. Wenn Sie die Geodatabase noch nicht erstellt haben, können Sie die Datei "dbtune.sde" bearbeiten und die gewünschten Einstellungen festlegen. Weitere Informationen finden Sie unter Ändern der Datei "dbtune" vor dem Erstellen der Geodatabase. Wenn die Geodatabase bereits vorhanden ist, können Sie den Wert des Parameters XML_IDX_INDEX_TEXT unterhalb des Schlüsselworts DEFAULTS mit dem Befehl "sdedbtune" bearbeiten. Weitere Informationen finden Sie unter Ändern des Inhalts der Tabelle DBTUNE, nachdem sie erstellt wurde.

    Dem Namen der Einstellung muss stets der Name des Benutzers, der die Einstellung erstellt hat, vorangestellt sein. Wenn der Administrator der Geodatabase beim Erstellen der Einstellung beispielsweise als Benutzer "sde" angemeldet war, muss der Parameter XML_IDX_INDEX_TEXT die Einstellung wie folgt festlegen:

    LEXER sde.WORLDLEXER

  11. Stellen Sie sicher, dass die Einstellungen der Wortliste und Stoppliste für die Sprache korrekt festgelegt sind. Führen Sie andernfalls einen der folgenden Schritte aus:
    • Verwenden Sie für die Einstellungen einen der Werte für Ihre Sprache, die im Oracle Text Reference Guide definiert sind.
    • Wenn die benötigte Einstellung im Oracle Text Reference Guide nicht definiert ist, erstellen Sie eine benutzerdefinierte Einstellung, und fügen Sie sie zum Wert des Parameters XML_IDX_INDEX_TEXT in der DBTUNE-Tabelle hinzu.

Wenn die aktuellen Standardeinstellungen für die Sprache Ihrer XML-Dokumente nicht korrekt sind und keine benutzerdefinierten Texteinstellungen vorhanden sind, müssen Sie vor dem Erstellen der XML-Spalte benutzerdefinierte Texteinstellungen erstellen und mit dem ArcSDE-DBTUNE-Parameter XML_IDX_INDEX_TEXT darauf verweisen, damit Sie Ihre XML-Dokumente richtig indizieren und durchsuchen können.


3/6/2012