Zu machen, wie die WHERE-Klausel der groß-und Kleinschreibung: Vom SQL-Server Abfragen Oracle-Verbindungsserver
Haben wir eine MS SQL Server 2005 - installation mit Verbindung zu einem Oracle Datenbank über eine linked server Verbindung.
Viele SELECT-Anweisungen durchgeführt werden, durch eine Reihe von OPENQUERY()
Befehle. Die WHERE-Klausel in der Mehrheit dieser Aussagen sind gegen VARCHAR
Spalten.
Ich habe gehört, dass wenn die WHERE-Klausel ist case-Sensitiv, es kann eine große Auswirkung auf die performance.
Also meine Frage ist, wie kann ich sicherstellen, dass die nicht-Binär-string WHERE-Klauseln durchgeführt werden, in einer groß-und Kleinschreibung Weg für maximale Leistung?
Ist das grundlegende Ziel, um die Leistung zu verbessern? Zunächst bestätigen Sie haben ein performance-Problem aufgrund dieser (die Sie wahrscheinlich nicht), ansonsten könnten Sie die Einführung unnötiger code, der in der Tat verursacht ein performance-Problem. Ich glaube, dass das, was du 'gehört', ist ein Mythos oder ein Missverständnis.
InformationsquelleAutor Peter Bridger | 2011-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig verwendet SQL server eine case insensitive Sortierung, wo Oracle ist groß - /Kleinschreibung standardmäßig. Für Recherchen, die wir normalerweise implementieren, die die Oberen () - Vergleich zu gewährleisten, hat der Benutzer eine bessere Suche Erfahrung.
InformationsquelleAutor tsells
Es ist eigentlich anders herum:
Kleinschreibung...
...wird der index auf
column
direkt und gut durchführen.Fall Unempfindlichkeit erfordert in der Regel so etwas wie dieses...
...die nicht nicht der index auf
column
und schlecht (es sei denn, Sie sind vorsichtig, und erstellen Sie eine funktionale index aufUPPER(column)
).Ich bin mir nicht sicher, ob
OPENQUERY()
ändert nichts, aber rein Oracle-Perspektive sowohl case-sensitive und-insensitive Abfragen gemacht werden können, performant, mit der unempfindlich diejenigen, die eine Besondere Betreuung (functional index).InformationsquelleAutor Branko Dimitrijevic
Woher hast du das gehört? Klingt wie ein Mythos zu mir... eher wäre es Umgekehrt, dh wenn Sie möchten, verwenden Sie so etwas wie
WHERE lower(field) = 'some str'
zu erreichen, case-insentive Vergleich wäre es schlimm auf die perfomance. Mit der groß-und Kleinschreibung Sortierung würde wohl deutlich schneller...Ein weiterer wichtiger Punkt zu beachten ist, machen Sie Ihre business-Regeln können sogar groß-und Kleinschreibung Vergleich.
Und last but not least, sollten Sie beginnen, zu optimieren, wenn Sie in der Tat nicht über ein perfomance-problem, nicht weil Sie etwas gehört...
InformationsquelleAutor ain
Machen
WHERE clause
groß-und Kleinschreibung, die Sie verwenden könnenLOWER
oderUPPER
für diesen Zweck.ODER
InformationsquelleAutor Arsman Ahmad
Beachten Sie bitte außerdem, warum Sie Hinzugefügt haben, eine neue Antwort, die sieht voll wie die bereits vorhandenen
InformationsquelleAutor TarasM