Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Update: Ineffizienter Verwendung des LIKE-Klausel mit Jet OLEDB-Anbieter

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 311159
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Problembeschreibung
Wenn Sie eine SQL-Abfrage mit Microsoft Jet OLE DB-Provider 4.0 ausführen, und Sie eine LIKE-Klausel auf eine verknüpfte SQL Server-Tabelle anwenden, wird die LIKE-Klausel nicht ordnungsgemäß vom Microsoft Jet-Abfrageprozessor in SQL Server weitergeleitet. Dies führt in einer weniger effizient allgemeine Abfrage, da alle Zeilen zuerst von SQL Server lokal von Jet abgerufen werden.

Beachten Sie, nachdem alle Zeilen von Jet lokal abgerufen werden, die LIKE-Klausel intern auf das endgültige Ergebnis angewendet wird bevor das Ergebnis zurück an den Client gesendet, daher ist das endgültige Ergebnis denselben Satz von Zeilen.
Lösung
Installieren Sie das neueste Microsoft Jet 4.0 Servicepack, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
239114So Erhalten Sie das neueste Service Pack für die Microsoft Jet 4.0-Datenbank-Engine
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt. Dieses Problem wurde in Jet 4.0 Service Pack 6 (SP6) behoben.
Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie eine neue Microsoft Access-Datenbank mit dem Namen "C:\DB1.MDB".
  2. Öffnen Sie C:\DB1.MDB in Microsoft Access und erstellen Sie eine verknüpfte Tabelle für die Authors -Tabelle befindet sich in der pubs- Datenbank auf SQL Server. Halten Sie den Standardnamen der verknüpften Tabelle der Dbo_authors .
  3. Führen Sie die folgende Abfrage, die mit Microsoft Jet OLE DB-Provider 4.0 für die Access-Datenbank C:\DB1.MDB.
    SELECT * from dbo_authors WHERE state LIKE 'M%'					
Wenn Sie auf dem Back-End Server mit SQL Server mithilfe des Dienstprogramms SQL Server Profiler überwachen, sehen Sie sich, dass die folgenden SQL-Anweisungen zu SQL Server die, die angibt, dass der Abfrageoptimierer von Microsoft Jet wie Kriterien anwenden, nach dem Abrufen aller Zeilen aus der Authors -Tabelle wurde gesendet werden. Beachten Sie, dass alle nicht kritische SQL-Anweisungen wurden entfernt, und Kommentare beschreiben verschiedene SQL­Anweisungen, die von Microsoft Jet gesendet hinzugefügt wurden.
-- This is sent first by Jet to fetch all key values.  -- Note that WHERE state LIKE 'M%' is not applied here.SELECT au_id, state FROM authors -- This retrieves a single row using the first key value retrieved by the-- above SQL statement. Jet will apply the LIKE clause internally-- before retrieving the first row.SELECT au_id,au_lname,au_fname,phone,address,city,state,zip,contract  FROM dbo.authors WHERE au_id = @P1 				
Wenn Sie die identische mit Microsoft Access ODBC-Treiber SQL-Abfrage ausführen, die LIKE-Klausel wird ordnungsgemäß weitergeleitet zu SQL Server in der ersten SQL-Anweisung, was zu einer wesentlich effizienter allgemeine Abfrage.
JOLT

Eigenschaften

Artikelnummer: 311159 – Letzte Überarbeitung: 01/11/2015 04:26:57 – Revision: 1.4

Microsoft OLE DB Provider for Jet 4.0

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe KB311159 KbMtde
Feedback