Frage

Ich arbeite mit Sybase 15 in meiner Bewerbung und es gibt Leistungsprobleme mit verschachtelten Anschlüssen. Ich habe eine Prozedur gespeichert, die 2 Spalten aus 2 Tabellen auswählt und Gleichungen von über 10 Spalten zwischen diesen 2 Tabellen vergleicht. Aber wenn ich diesen Speicher leite. Proc., Das Ergebnis dauert 40 Minuten. Ich habe "set merge-join off" -Anweisung zu meinem Proc hinzugefügt und dauert 22 Sekunden. Aber ich brauche noch eine Lösung ohne das. Ich habe Sybase 12.5 vorher verwendet und es gab kein solches Problem und mein Proc wurde 3 Minuten für das Ergebnis genommen.

Ich habe Serverkonfigurationen mit sp_configure zwischen 15 und 12.5 verglichen und Sybase15 Server -Konfigurationen (E/A- und Speicherkonfigurationseinstellungen) sind größer als Sybase12.5 Server.

Info: Sybase15 Die Systemressourcen von PC sind wirklich gut.

War es hilfreich?

Lösung

Ich habe gerade 14 Stunden bei der Arbeit damit verbracht, kritische Leistungsprobleme zu debuggen, die am Wochenende aus einer Sybase 15 -Migration aufgetreten sind.

Der Abfrageoptimierer hat (für uns) einige sehr seltsame Entscheidungen getroffen.

Nehmen Sie ein Beispiel,

select a, b, c from table1, table2, table3 where ...

gegen

create table #temp (col1 int, col2 int, ... etc)

insert #temp
select a, b, c from table1, table2, table3 where ...

Wir hatten den ersten Lauf rechtzeitig und konnten ihn trotz umfangreicher Überarbeitung nicht im zweiten Fall die richtige Entscheidung treffen. Wir haben die Abfrage sogar in temporäre Tische getrennt, aber trotzdem ungewöhnliche Ergebnisse erzielt.

Am Ende griffen wir auf SET FORCEPLAN ON Für einige Abfragen - dies ist nach 10 Stunden, in denen unsere DBAs und Sybase auf der Linie sind. Die Lösung stammte eher von den Anwendungsentwicklern als von Ratschlägen der Sybase -Ingenieure.

Um sich etwas Zeit zu retten, nehmen Sie diesen Weg mein Vorschlag.

Andere Tipps

Gleich wie die anderen, ich habe eher eine Kommisation als eine echte Antwort! Wir sehen ein Problem, bei dem der ASE 15 Query -Planer die Kosten eines Tabellenscans massiv unterschätzt und die Kosten für die Verwendung des Cluster -Index ähnlich überschätzt. Dies führt dazu, dass ein Zusammenführungsverbinden der vorgeschlagene Plan ist. Deaktivieren von Zusammenführungsverbindungen oder Festlegen des Allrows_oltp Optgoal manchmal führt zu einem besseren Abfrageplan. Die geschätzten Kosten sind noch weit entfernt, aber indem der Abfrageplaner eine Option von der Tabelle entnimmt, kann dies eine gute Lösung finden - wenn auch über die falsche Analyse.

ASE 15 Dokumente sagen, dass es einen viel saubereren Algorithmen hat, während der ASE 12 -Planer eine Reihe von Sonderfällen hatte. Vielleicht ist ein Sonderfall mit "Wenn Sie die Clustered -Index -Spalte im Join haben, wird es schneller sein als ein Tabellencan", wäre keine so schlechte Idee ... :(

Sybase hat die Abfrage-Engine für Version 15 effektiv neu geschrieben, was bedeutet, dass Abfragen, die auf 12.x superspaltlich ausgeführt wurden, auf der neueren Version viel langsamer lief und umgekehrt. Die einzige Möglichkeit, dies zu debuggen, besteht darin, den Abfrageplan von 12.x mit dem 15 Abfrageplan zu vergleichen und zu sehen, was anders gemacht wird.

Jeder, der sich mit diesem Problem befasst, sollte diesen Dokument lesen:

http://www.sybase.com/files/white_papers/ase15-optimizer-best-practices-v1-051209-wp.pdf

Es hat eine offene Warnung vor der Migration von Sybase 12 nach Sybase 15.

Quoten:

... Behandle ASE 15 nicht als "nur eine weitere Veröffentlichung". So sehr wir sagen möchten, dass Sie Ihre Anwendungen einfach aktualisieren und auf die verbesserten Server richten können, die Tiefe und Breite der Veränderung in einem der grundlegendsten Bereiche einer Datenbank, Abfrageausführung, erfordert ein fokussierteres Testregim. Dieses Papier soll Ihnen die klaren Fakten und Best Practices bieten, um diese Anstrengung so gut wie möglich zu reduzieren.

Es geht weiter über die neuen Abfragen von ASE 15 Query Optimizer, Vis-Vis-OLTP-Abfragen und DSS (Decision Support System).

Jedoch, es gibt es gute Nachrichten: Im März 2009 führte Sybase 15.0.3 einen Kompatibilitätsmodus ein. Siehe den folgenden DOC:

http://www.sybase.com/detail?id=1063556

In diesem Modus müssen Sie keine Abfragen analysieren, um zu entscheiden, ob sie OLTP- oder DSS -Profile passen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top