Oprava: Neefektivní použití klauzule LIKE s Jet OLEDB Provider

Překlady článku Překlady článku
ID článku: 311159 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Spuštění dotazu SQL pomocí Microsoft Jet OLEDB Provider 4.0 a použití klauzule LIKE propojené tabulce serveru SQL, klauzule LIKE není správně předána zpracovatelem dotazu databázový stroj Microsoft Jet SQL Server. To má za následek méně efektivní celkové dotazu, protože všechny řádky jsou nejprve načteny ze serveru SQL Server místně Jet.

Všimněte si, že po všechny řádky jsou načteny místně Jet, klauzule LIKE používá interně na konečný výsledek před odesláním výsledku zpět klientovi, proto je konečný výsledek stejnou sadu řádků.

Řešení

Tento problém vyřešíte instalací nejnovější aktualizace service pack pro Microsoft Jet 4.0. Další informace získáte následujícím článku báze Microsoft Knowledge Base:
239114Jak: Získat nejnovější aktualizaci Service Pack pro databázový stroj Microsoft Jet 4.0

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny na začátku tohoto článku. Tento problém byl opraven v Jet 4.0 Service Pack 6 (SP6).

Další informace

Kroky pro reprodukci chování

  1. Vytvořit novou databázi aplikace Microsoft Access s názvem "C:\DB1.MDB".
  2. Otevřete C:\DB1.MDB v aplikaci Microsoft Access a vytvořit propojenou tabulku k tabulce autoři umístěna v databázi pubs na serveru SQL Server. Ponechat výchozí název propojené tabulky z dbo_authors.
  3. Spustit následující dotaz pomocí Microsoft Jet OLEDB Provider 4.0 databázi Access C:\DB1.MDB.
    SELECT * from dbo_authors WHERE state LIKE 'M%'
    					
Sledování serveru SQL server back-end, pomocí nástroje SQL Server System Profiler, uvidíte, že následující příkazy SQL jsou odeslány serveru SQL Server označující, že Optimalizátor dotazu databázový stroj Microsoft Jet je použití LIKE kritéria po načtení všech řádků v tabulce autoři. Všimněte si, že byly odebrány všechny nekritické příkazy SQL a komentáře byly přidány do popisují různé příkazy SQL odeslaný Microsoft Jet.
-- 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 
				
Spustíte-li shodné dotazu SQL pomocí ovladače ODBC Microsoft Access, klauzule LIKE je správně předány serveru SQL Server v prvním příkazu SQL, výsledkem je mnohem efektivnější celkové dotazu.

Vlastnosti

ID článku: 311159 - Poslední aktualizace: 12. října 2005 - Revize: 1.4
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft OLE DB Provider for Jet 4.0
Klíčová slova: 
kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe KB311159 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:311159
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com