... ich meine schon, was ich schreibe!
zur Problemstellung:
ich gehe mal davon aus, dass DBTEXT nicht klein ist und MATINDEX um etliches größer und dass die Ergebnismenge eine hohe Selektivität hat, also um ein Vielfaches kleiner als DBTEXT ist. (right oder left join ist hier verkehrt!!! das ist ein klassischer Fall für einen inner join).

Wenn obige Konstellation stimmt, hast du zwei Möglichkeiten:
1. den Index auf das Sortierfeld zu löschen (falls der anderweitig nicht benötigt wird)
2. Zweistufig arbeiten und im ersten Schritt ein Substrat ziehen (create table qtemp.ddd as (select ... from... !!! ohne order by!!!) und im zweiten Schritt select * from qtemp.ddd order by...)
Das auch denkbare Festschreiben der Join Reihenfolge per QAQQINI könnte auch klappen, würde ich aber lassen, das macht andere Queries kaputt.

Dass da eine Datenbank schneller als die andere sein kann, unabhängig von den Lizenzkosten, liegt daran, dass auf unterschiedliche Ziele optimiert wird - jede Datenbank hat ihre Stärken und Schwächen, die in einem inneren Zusammenhang stehen und da liegt es bei MySQL (bei der Abwesenheit von Lizenzkosten) schon nahe für eine spezifische Aufgabe, wenn sie denn kritisch ist, sich das Beste aus mehreren Welten zusammen zu packen!

D*B


Zitat Zitat von holgerscherer Beitrag anzeigen
Moment - Dieters Sätze sind manchmal mit einer gewissen Vorsicht zu geniessen, ein wenig Ironie und Bissigkeit kann schon dabei sein. Da ich gerade neben ihm sitze, gehe ich davon aus, dass das nicht seine ultimative Meinung zur Lösung des Problems ist. Aber wie geschrieben, nun brauchts Detailinfos.

Nachtrag: ich werde so aus dem zweiten Blick nicht schlau, was Du genau aus welchen Dateien holst. Könntest Du die beiden Dateien genau beschreiben, was wo liegt, und *wann* Du welche Sätze mit welcher Kondition Verknüpfung holen willst. Und - bei solchen Dingen - ist Releasestand und PTF-Stand wichtig.


-h