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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere 11 - Änderungen und Upgrades » Neue Funktionen in Version 8.0.0 » Verhaltensänderungen in Version 8

 

Verhaltensänderungen von Adaptive Server Anywhere

Nachstehend werden Verhaltensänderungen gegenüber früheren Versionen der Software beschrieben.

Eine Liste der nicht mehr weiterentwickelten und nicht mehr unterstützten Funktionen finden Sie unter Nicht weiterentwickelte und nicht mehr unterstützte Funktionen.

  • Separate Lizenzierung von Java in der Datenbank   Demzufolge wird bei der Erstellung einer Datenbank die Unterstützung für Java in der Datenbank standardmäßig ausgeschlossen.

    Java in der Datenbank wird in UltraLite-Referenzdatenbanken nicht länger benötigt, da der UltraLite-Generator nun eine externe Java Virtual Machine verwendet.

    Weitere Hinweise finden Sie unter SQL Anywhere 11-Komponenten.

  • Aggregatfunktionen und äußere Referenzen   Adaptive Server Anywhere Version 8 befolgt den neuen SQL/99-Standard für die Klarstellung des Einsatzes von Aggregatfunktionen, wenn solche in einer Unterabfrage erscheinen. Diese Änderungen betreffen das Verhalten von Anweisungen, die für frühere Versionen der Software geschrieben wurden: Abfragen, die bisher richtig programmiert waren, können jetzt Fehlermeldungen erzeugen, und es kann sein, dass sich Ergebnismengen ändern.

    Weitere Hinweise finden Sie unter Aggregatfunktionen und äußere Referenzen.

  • Selektivitätsschätzungen durch den Benutzer   Adaptive Server Anywhere gestattet es Ihnen, explizite Selektivitätsschätzungen abzugeben, um die Wahl des Zugriffsplans zu lenken. Diese Schätzungen waren als Behelfslösungen äußerst nützlich, wenn der von der Software gewählte Zugriffsplan schlecht war. Die neue Verbindungsoption user_estimates steuert, ob der Optimierer vom Benutzer angegebene Selektivitätsschätzungen verwendet oder ignoriert.

    Wenn Sie diese Schätzungen als Behelfslösung für Performanceprobleme verwendet haben, sollten Sie die Option user_estimates auf OFF setzen, da eine explizite Schätzung ungenau werden kann, wordurch der Optimierer möglicherweise ungeeignete Pläne auswählt. Diese Version enthält Erweiterungen zur Abfrageverarbeitung, wie etwa interne Join-Algorithmen, die eine bedeutende Verbesserung der Abfragen-Performance darstellen.

    Weitere Hinweise zu Selektivitätsschätzungen durch den Benutzer finden Sie unter user_estimates-Option [Datenbank] und Explizite Selektivitätsschätzungen.

  • Zeilenreihenfolge   Eine Nebenwirkung der Verbesserungen der Abfrageverarbeitung für Version 8.0 ist eine weniger deterministische Zeilenreihenfolge. Ohne die Klausel ORDER BY gibt Adaptive Server Anywhere Zeilen in der jeweils effizientesten Reihenfolge zurück. Das bedeutet, dass das Erscheinungsbild der Ergebnismengen abhängig davon variieren kann, wann Sie zuletzt auf die Zeile zugegriffen haben etc. Die einzige Möglichkeit, sicherzustellen, dass Zeilen in einer bestimmten Reihenfolge zurückgegeben werden, ist die Verwendung von ORDER BY.

    Die Funktion LIST zählt zu den Funktionen, die von dieser Änderung in besonderem Maße betroffen sind.

  • Änderungen des Zugriffsplans   Die von dieser Version von Adaptive Server Anywhere ausgewählten Zugriffspläne verwenden weniger häufig Indizes als frühere Versionen der Software. Die Verbesserung der Effizienz von Table Scans und das selektivere Kostenmodell, das für den Vergleich der Kosten von Zugriffsplänen verwendet wird, führt zu einer genaueren Bestimmung der Nützlichkeit von Indizes als in früheren Versionen der Software.

  • Cursor-Änderungen   Eine Nebenwirkung der Cursor-Verbesserungen ist, dass das Verhalten der Cursor in dieser Version stärker an Standards orientiert ist als zuvor. Das kann für einige Cursor zu Änderungen der Cursor-Sensitivität führen, da Adaptive Server Anywhere nun ein Verhalten zeigt, das stärker den Erwartungen von ODBC und anderen Schnittstellen entspricht. Eingebettete SQL SCROLL-Cursor lassen nur Vorababrufe (Prefetchs) nicht mehr zu, sodass die Wertänderungen im Cursor widergespiegelt werden.

    Diese Änderung kann sich auf bestehende Anwendungen auswirken, die Rückgabecodes nur auf SQL_SUCCESS und nicht auf SQL_SUCCESS_WITH_INFO prüfen. Anwendungen, die auf SQL_SUCCESS_WITH_INFO prüfen, erhalten eine Warnung, wenn das Cursor-Verhalten sich von dem geforderten Verhalten unterscheidet. Die Warnung ist SQLCODE=121, SQLSTATE 01S02.

    Unempfindliche Cursor können nicht aktualisiert werden.

    Weitere Hinweise finden Sie unter Unempfindliche Cursor.

  • Speicherung gespeicherter Prozeduren   Gespeicherte Prozeduren werden jetzt in ihrer geschriebenen Form gespeichert. Adaptive Server Anywhere erstellt eine interne Darstellung der Prozedur, die für die Profilerstellung verwendet wird.

  • OPEN CURSOR für Einfügung nicht unterstützt   Die Möglichkeit, in einer INSERT-Anweisung einen Cursor zu öffnen, wird nicht mehr unterstützt. Das Öffnen eines aktualisierbaren Cursors in einer SELECT-Anweisung bietet dieselben Möglichkeiten und befolgt dabei den Industriestandard.

  • Benutzerdefinierte Funktionen   Benutzerdefinierte Funktionsparameter und Rückgabewerte werden nun im Cache gespeichert. Wenn eine Funktion mehrfach in einer SQL-Anweisung verwendet wird, können die im Cache gespeicherten Parameterwerte dazu führen, dass das im Cache gespeicherte Ergebnis verwendet wird, anstatt die Funktion erneut auszuwerten. In früheren Versionen wurden benutzerdefinierte Funktionen jedes Mal neu ausgewertet, wenn sie benötigt wurden. Das neue Verhalten bietet eine bessere Performance und konsistentere Ergebnisse, doch die Ergebnisse können sich von denen in früheren Versionen der Software unterscheiden.

  • Änderungen der Funktion NUMBER(*)   Die Verwendung der Funktion NUMBER wurde beschränkt, um problematisches Verhalten zu vermeiden. NUMBER kann in der Auswahlliste einer Abfrage verwendet werden, um eine sequenzielle Zeilennummerierung der Ergebnismenge bereitzustellen. Diese Verwendung ist weiterhin zulässig.

    Die Funktion NUMBER kann nun auch in Fällen negative Zahlen liefern, in denen dies früher nicht der Fall war, wie z.B. wenn Sie einen absoluten Abruf mit einem Wert von -1 ausführen und dann durch den Cursor zurückgehen. Das neue Verhalten entspricht dem ISO/ANSI-Abruf-Offset.

    Die Verwendung der Funktion NUMBER unter verschiedenen Umständen, wie z.B. in einer WHERE- oder HAVING-Klausel, gibt nun einen Fehler zurück.

    Weitere Hinweise finden Sie unter NUMBER-Funktion [Verschiedene].

  • Änderungen der benutzerdefinierten Kollatierung   In früheren Versionen hat die Option -d im Kollatierungs-Dienstprogramm (dbcollat) drei Parameter akzeptiert. Nun akzeptiert sie nur noch zwei Parameter. Der Parameter Zuordnungsdatei wird nicht mehr akzeptiert.

    Außerdem gibt es die Skriptdateien collsqmp.sql und custmap.sql nicht mehr, und sie können daher auch nicht mehr für integrierte bzw. benutzerdefinierte Kollatierungen verwenden werden.

    Für neu erstellte Datenbanken enthält die Tabelle SYSCOLLATIONMAPPINGS nur eine Zeile mit der Kollatierungszuordnung. Für Datenbanken, die mit früheren Versionen von Adaptive Server Anywhere erstellt wurden, enthält diese Tabelle für jede integrierte Kollatierung eine Zeile.

  • Änderungen der Triggernamen   Triggernamen brauchen in der Datenbank nicht mehr eindeutig zu sein. Sie müssen nur innerhalb der Tabelle eindeutig sein, auf die sie sich beziehen. Die Syntax von DROP TRIGGER und COMMENT ON TRIGGER wurde entsprechend geändert, sodass Sie nur einen Eigentümer angeben können, wenn Sie auch eine Tabelle festlegen. Das bedeutet, dass ältere Skripten, die Trigger nur mit einem Eigentümer qualifizieren, nun den Fehler "Tabelle nicht gefunden" liefern.

  • Adressen in Beispieldatenbank geändert   Die Adressen in der Adaptive Server Anywhere 9.0-Beispieldatenbank unterscheiden sich von denen in früheren Versionen.

  • JAR-Dateiname für interne JDBC-Treiber geändert   Die internen JDBC-Treiberklassen werden nun als JAR-Datei anstatt mit dem Namen ASAJDBC mit dem Namen ASAJRT installiert.

  • Berechtigungen für Anweisung RESTORE DATABASE   Es ist keine Verbindung zur Dienstprogrammdatenbank mehr erforderlich, um die Anweisung RESTORE DATABASE auszuführen. Die Berechtigungen zum Ausführen einer RESTORE DATABASE-Anweisung werden von der Option -gu gesteuert.

    Weitere Hinweise finden Sie unter RESTORE DATABASE-Anweisung.

  • Leere Zeichenfolge als NULL-Zeichenfolge für TDS-Verbindungen zurückgeben   Die Option tds_empty_string_is_null steuert, ob der Server bei TDS-Verbindungen eine leere Zeichenfolge in Form einer Zeichenfolge mit einem Leerzeichen oder als NULL-Zeichenfolge zurückgibt.

    Weitere Hinweise finden Sie unter tds_empty_string_is_null-Option [Datenbank].

  • COMMENT-Anweisung geändert   In früheren Versionen umfasste die Syntax für COMMENT ON INDEX einen optionalen Eigentümernamen für den Index. Der Indexname kann nun optional den Eigentümer und die Tabelle umfassen. Die Syntax für COMMENT ON INDEX lautet daher wie folgt:

    COMMENT ON INDEX [ [ Eigentümer.] Tabelle.Indexname IS Kommentar

    Weitere Hinweise finden Sie unter COMMENT-Anweisung.

  • Zeichensatzkonvertierung standardmäßig aktiviert   In früheren Versionen von Adaptive Server Anywhere war die Zeichensatzkonvertierung standardmäßig deaktiviert, und Sie mussten die Befehlszeilenoption -ct verwenden, um sie zu aktivieren. Die Zeichensatzkonvertierung ist nun standardmäßig aktiviert. Sie kann mit der neuen Option -ct deaktiviert werden.

    Wenn der Server feststellt, dass sich der Zeichensatz der Verbindung von dem Zeichensatz der Datenbank unterscheidet, wendet der Server für diese Verbindung auf alle Zeichenfolgen, die vom Server und an den Server gesendet werden, die Zeichensatzkonvertierung an.

    Der Server deaktiviert die Zeichensatzkonvertierung für eine Verbindung, wenn er feststellt, dass die Datenbank und die Verbindung den gleichen Zeichensatz verwenden.

    In den meisten Fällen muss die Zeichensatzkonvertierung aktiviert sein. Eine mögliche Verhaltensänderung tritt auf, wenn in eine Datenbank Binärdaten eingegeben und als Zeichendaten abgerufen werden, oder umgekehrt. In diesem Fall werden die Daten möglicherweise nicht genauso zurückgegeben, wie sie eingegeben wurden, da der Server die Zeichensatzkonvertierung nur auf Zeichendaten anwendet. Um dieses Problem zu vermeiden, sollten Anwendungen keine Zeichendaten mithilfe eines Binär-Datentyps senden oder abrufen.

  • CONVERT, timestamp_format und date_format   Wenn Sie bei der Verwendung der Optionen timestamp_format und date_format ein Zeichensymbol gemischt in Klein- und Großschreibung angeben (z.B. Mmm), wählt Adaptive Server Anywhere nun die Schreibweise, die für die verwendete Sprache geeignet ist. Außerdem konvertiert die Funktion CONVERT nun Zeichendaten in die Schreibweise, die der verwendeten Sprache entspricht. In Deutsch wird z.B. die Schreibweise May gewählt, während in Französisch die Schreibweise mai ist.

    Weitere Hinweise finden Sie unter date_format-Option [Datenbank], timestamp_format-Option [Kompatibilität] und CONVERT-Funktion [Datentypkonvertierung].

  • Wechsel zur booleschen Drei-Werte-Logik   Die boolesche Zwei-Werte-Logik wird nur auf Fälle von Ausdr = NULL angewendet, wobei Ausdr sich auf eine Basisspalte oder einen Ausdruck über einer Basisspalte bezieht. Anderenfalls wird die Drei-Werte-Logik angewendet. Die Option ansinull betrifft nur diesen spezifischen Fall in der WHERE-Klausel der Abfrage.

  • Sybase Central und InteractiveSQL akzeptieren COMMLINKS-Verbindungsparameter   In früheren Versionen von Adaptive Server Anywhere haben Sybase Central und Interactive SQL (das Dienstprogramm dbisql) den Verbindungsparameter COMMLINKS ignoriert. Jetzt wird dieser Parameter von Sybase Central und Interactive SQL akzeptiert.

    Als Ergebnis dieser Änderung verhalten sich verschiedene Verbindungszeichenfolgen nun möglicherweise anders als in früheren Versionen von Adaptive Server Anywhere. Wenn Sie COMMLINKS=tcpip nicht angeben, suchen Interactive SQL und Sybase Central nicht nach Servern im Netzwerk.

    Weitere Hinweise finden Sie unter CommLinks-Verbindungsparameter [LINKS].

  • Clients ignorieren Umgebungsvariablen SQLLOCALE   Clients können den Verbindungsparameter CharSet verwenden, um den für eine Verbindung zu verwendenden Zeichensatz festzulegen. In früheren Versionen von Adaptive Server Anywhere wurde der Parameter CHARSET der Umgebungsvariablen SQLLOCALE verwendet, um den Standardzeichensatz des Clients zu ändern, wenn der Verbindungsparameter CharSet nicht angegeben wurde. Clients ignorieren nun die Verbindungsvariable SQLLOCALE.

  • Nicht unterstützte Zeichensätze verursachen Verbindungsfehler   Clients können den Verbindungsparameter CharSet verwenden, um den für eine Verbindung zu verwendenden Zeichensatz festzulegen. Wenn der Server den geforderten Zeichensatz jedoch nicht unterstützt, schlägt die Verbindung fehl. Wenn in früheren Versionen von Adaptive Server Anywhere ein Client einen nicht unterstützten Zeichensatz angefordert hat, wurde eine Warnung ausgegeben, doch die Verbindung war erfolgreich. Wenn der Client keinen Zeichensatz festlegt, doch der lokale Zeichensatz des Clients vom Server nicht unterstützt wird, ist die Verbindung erfolgreich, doch es wird eine Warnung ausgegeben, dass der Zeichensatz nicht unterstützt wird.

    Dieses Verhalten tritt auf, wenn sich Clients der Version 8 mit Datenbankservern der Versionen 6.x, 7.x und 8 verbinden.

  • Standardpaketgröße geändert   Die Standardpaketgröße für Client/Server-Kommunikation wurde von 1024 Byte auf 1460 Byte geändert.

    Weitere Hinweise zur Paketgröße finden Sie unter CommBufferSize-Verbindungsparameter [CBSIZE] und Serveroption -p.

  • Dienstprogramm dbdsn verwaltet nur Adaptive Server Anywhere-Datenquellen   Das Dienstprogramm dbdsn für die Verwaltung von Adaptive Server Anywhere ODBC-Datenquellen ist nun explizit und ausschließlich auf Adaptive Server Anywhere-Datenquellen beschränkt.

  • Option login_procedure erfordert DBA-Berechtigung   Die Option login_procedure kann nur von einem Benutzer mit DBA-Berechtigung gesetzt werden. In früheren Versionen von Adaptive Server Anywhere war zum Setzen dieser Option keine DBA-Berechtigung erforderlich. Ein Benutzer mit DBA-Berechtigung kann die Einstellung dieser Option für andere Benutzer ändern, doch Benutzer ohne DBA-Berechtigung können ihre eigene Einstellung dieser Option nicht ändern. Aufgrund dieser Änderung kann der DBA sicherstellen, dass erforderlichenfalls eine spezielle Prozedur ausgeführt wird, wenn sich ein Benutzer verbindet.

    Weitere Hinweise finden Sie unter login_procedure-Option [Datenbank].

  • ESTIMATE_SOURCE gibt neue Werte zurück   Die Funktion ESTIMATE_SOURCE gibt detailliertere Werte zurück als zuvor.

    Weitere Hinweise finden Sie unter ESTIMATE_SOURCE-Funktion [Verschiedene].

Nicht weiterentwickelte und nicht mehr unterstützte Funktionen

In dieser Liste finden Sie die Funktionen, die nicht mehr unterstützt werden, sich unter Umständen aber auf vorhandene Anwendungen auswirken.

  • NetWare 4.10 nicht mehr unterstützt   Die Novell NetWare-Versionen 4.11 und später werden weiterhin unterstützt. Die Versionen 3.x und 4.10 werden nicht unterstützt.

  • Netbios nicht mehr unterstützt   Der Netbios-Port wird nicht länger unterstützt. Wenn Sie Netbios verwenden, müssen Sie zu TCP/IP oder SPX wechseln.

  • IPX nicht mehr unterstützt   Der IPX-Port wird nicht länger unterstützt. Wenn Sie IPX verwenden, müssen Sie zu TCP/IP oder SPX wechseln.

  • Nicht mehr weiterentwickelte Kollatierungen   Folgende Kollatierungen werden nicht mehr unterstützt. Wo angegeben, wurden sie durch andere Kollatierungen ersetzt:

    Veraltet

    Ersetzt durch

    437

    437LATIN1

    850

    850LATIN1

    852

    852LATIN2

    860

    860LATIN1

    863

    863LATIN1

    865

    865NOR

    SJIS

    932JPN

    SJIS2

    932JPN

    WIN_LATIN1

    1252LATIN1

    WIN_LATIN5

    1254TRK

    Internal

    850LATIN1

    437EBCDIC

  • Parameter -e nicht mehr unterstützt   Die Befehlzeilenoption -e und der Parameter -e des Dienstprogramms Datenquelle, mit dem Client-/Server-Übertragungen verschlüsselt wurden, werden nicht mehr unterstützt. Sie wurden durch den Parameter -ec ersetzt. Auf dem Server verwendet -ec simple denselben Verschlüsselungsalgorithmus wie -e in früheren Versionen von Adaptive Server Anywhere.

  • Parameter None nicht mehr unterstützt   Der Parameter None für die Option isql_plan wird nicht mehr unterstützt. Der Abfrageoptimierungsplan wird nun im Register "Plan" im Fenster "Ergebnisse" angezeigt. Wenn Sie auf das Register "Plan" klicken, erscheint ein Plan. In früheren Versionen wurde der Plan im Fenster "Meldungen" angezeigt:

  • Klausel "WITH HASH SIZE n" nicht mehr unterstützt   Die Klausel WITH HASH SIZE wird nicht mehr unterstützt.

  • Option max_work_table_hash_size nicht mehr unterstützt   Die Option max_work_table_hash_size wird nicht mehr unterstützt.

  • Option max_hash_size nicht mehr unterstützt   Die Option max_hash_size wird nicht mehr unterstützt.

  • SATMP-Umgebungsvariable nicht mehr unterstützt   Die Umgebungsvariable SATMP, die von UNIX-Versionen von Adaptive Server Anywhere verwendet wurde, um ein Verzeichnis anzugeben, in dem sich temporäre Dateien befinden, wird nicht mehr unterstützt. Unter UNIX kann die Umgebungsvariable ASTMP verwendet werden, um anzugeben, wo temporäre Dateien aufbewahrt werden.

    Weitere Hinweise finden Sie unter SATMP-Umgebungsvariable.

  • dbtran-Option -id entfernt   Die Befehlszeilenoption -id des Dienstprogramms dbtran ist in dieser Software nicht mehr enthalten.