ODBC veri kaynaklarını kullanırken Microsoft Access'i en iyi duruma getirme

Not

Office 365 ProPlus, Microsoft 365 Kurumsal Uygulamaları olarak yeniden adlandırılıyor. Bu değişiklik hakkında daha fazla bilgi için, bu blog yazısını okuyun.

Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı beceriler gerektirir.

Bu makale yalnızca bir Microsoft Access veritabanı (.mdb veya .accdb) için geçerlidir.

Özet

Bu makalede, bir ODBC veri kaynağından verilere erişdiğinizde performansı artırmak için çeşitli ipuçları açıklanmaktadır.

Daha fazla bilgi

ODBC veri kaynaklarıyla performansı artırmak için aşağıdaki ipuçlarını kullanın:

  • Sunucudan istediğiniz veri miktarını kısıtlayın. İhtiyacınız olandan daha fazla veri istemeyin. Yalnızca gereksinim duyduğunuz alanları ve satırları seçmek için sorguları kullanın.

  • Yalnızca gereksinim duyduğunuz işlevselliği kullanın. Anlık görüntüler dinamatlardan daha az güçlüdür ve güncelleştirilemez. Ancak, anlık görüntüler özellikle Memo veya OLE Object alanları olmayan küçük kayıt kümeleri için daha hızlı olabilir.

  • Sunucu verilerine erişmek için bağlantılı (bağlı) tablolar oluşturun. "Doğrudan" sunucu erişiminden kaçının (diğer bir şekilde uzak veritabanlarını açmayın ve bunlara karşı sorgular çalıştırmayın). Bunun yerine, ekli tablolar oluşturun veya geçiş sorguları oluşturun.

  • Tasarım listesi kutuları ve açılan kutuları akıllıca. Bir formda, her liste kutusu, açılan kutu, alt form ve toplam içeren denetim ayrı bir sorgu gerektirir. Yerel verilere karşı performans yeterli olabilir. Ancak uzak verilere karşı, her sorgu sunucuya gönderilmesi ve formun açılabilmesi için yanıtın döndürülmesi gerektiğinden, bir formu açtığınızda uzun gecikmeler oluşabilir.

  • Büyük açılan kutularkaçının. Yerel tabloya dayalı yüzlerce, hatta binlerce seçenek içeren bir açılan kutu dahil olmak üzere, özellikle yerel tabloda uygun bir dizini tanımlıyorsanız, kabul edilebilir bir yanıt süresi verebilir. Ancak, uzak bir tabloya karşı, bu tür bir açılan kutu, listeyi doldurmak için veri getirirken sunucu ve ağ kaynaklarını boşalttığı için yavaş performans verir. Uzak verilerle çalışırken açılan kutuya döndürülen satır sayısını sınırlamak en iyisidir. Ayrıca verileri daha küçük açılan kutulara ayırabilirsiniz (yukarıdaki ipucunu göz önünde bulundurarak).

  • Yalnızca daha küçük kayıt kümelerinde Bul komutunu kullanın. Microsoft Jet veritabanı altyapısı, hemen hemen her boyuttaki yerel kayıt kümelerine ve makul boyuttaki uzak kayıt kümelerine karşı iyi çalışacak şekilde Bul komutunu en iyi duruma getirin. Ancak, büyük uzaktan kayıt kümeleriniz (binlerce kayıt veya daha fazla) varsa, bunun yerine bir filtre veya sorgu oluşturmanız ve sunucunuzun işleyebilir kısıtlamaları kullanmaya dikkat etmelisiniz.

  • Sorguların işlenmek üzere sunucuya gönderildiğinden emin olun. Uzak verilere karşı sorgu performansındaki en önemli faktör, sunucunuzun sorguyu mümkün olduğunca çalıştırmasını sağlamaktır. Microsoft Jet veritabanı altyapısı, sorgunun tamamını sunucunuza göndermeye çalışır, ancak genellikle sunucular veya belirli sunucunuz tarafından desteklenmeyen sorgu yan tümcelerini ve ifadelerini yerel olarak değerlendirir. Genel olarak sunucular tarafından desteklenmeyen işlevler şunlardır:

  • Tek bir SQL deyimiyle ifade edilemeyen işlemler. Bu durum, bir sorguydan başka bir sorguya giriş olarak kullandığınızda veya sorgunuzun FROM yan tümcesi toplamlar sorgusu veya DISTINCT sorgusu içerdiğinde oluşabilir. Genellikle, tüm diğer işlemlerden sonra toplamları hesaplamak için sorgularınızı yeniden düzenleyebilirsiniz.

    • Çapraz sekme sorguları, TOP sorguları ve birden çok gruplandırma ve toplam düzeyi olan raporlar gibi SQL'e Microsoft Jet veritabanı altyapısına özgü uzantılar olan işlemler. Basit çapraz sekme sorgularının sunuculara gönderileebileceğini unutmayın.
    • Microsoft Access'e özgü işleçler veya işlevler içeren ifadeler. Microsoft Access finansal işlevleri ve istatistiksel toplamları sunucu eşdeğeri yoktur.
    • Uzak sütunları bağımsız değişken olarak alan Uygulama için Kullanıcı tanımlı Visual Basic işlevleri. Bu işlevler sunucuda bulunmaz, ancak uzak sütun verilerini işlemelidir. Ancak, kullanıcı tanımlı bir işlev tek bir değer döndürür ve uzak bir sütuna başvurulmazsa, işlev yerel olarak değerlendirilir ve değeri işleme için sunucuya gönderilir.
    • İşleçlerde veya UNION sorgu çıktılarında metin ve sayısal veri türlerinin karıştırılması. Çoğu sunucu, Microsoft Access'in veri türü hoşgörüsünden yoksun. Bu nedenle, uygun olduğunda açık dönüştürme işlevlerikullanın.
    • Yerel tablolar ve uzak tablolar arasında veya farklı ODBC veri kaynaklarındaki uzak tablolar arasında heterojen birleşimler. Küçük yerel tablolar ile birleştirme sütununa ekin eklenmiş büyük uzak tablolar arasındaki birleştirmeler, uzak dizin birleşmeyle neden olabilir. Uzak dizin birleştirmesinde, yerel tablodaki her satır için bir sorgu sunucuya gönderilir ve yalnızca birleştirme satırları döndürülür.
    • Uzaktan gönderilemeyen ifadeler veya sunucunuz tarafından değerlendirilemediği için uzaktan gönderilemeyen ifadeler. Uzak olmayan çıktı ifadeleri (SELECT yan tümcesi içinde olanlar) Bir Toplamlar sorgusunda, DISTINCT sorgusunda veya union sorgusunda oluşmadıkları sürece sorgunuzun yerel değerlendirmesini zorlamaz. Diğer tümcelerde (WHERE, ORDER BY, GROUP BY, HAVING vb.) uzak olmayan ifadeler, sorgunuzun en azından bir kısmını yerel olarak değerlendirilmeye zorlar.
  • Sunucular desteklenen işlevselliğin bazı alanlarında farklılık gösterir. Uzak bir tablo eklediğinizde, Microsoft Jet veritabanı altyapısı odbc sürücüsünü yetenekleri için sorgular. Gerekli işlevsellik sürücü ve sunucu tarafından destekleniyorsa, Microsoft Jet veritabanı altyapısı işlemi işleme için sunucuya gönderir. Değilse, Microsoft Jet veritabanı altyapısı işlemi yerel olarak gerçekleştirir. Farklı destek alanları şunlardır (ancak bunlarla sınırlı değildir) aşağıdakileri içerir:

    • Dış birleştirmeler. Microsoft Jet veritabanı altyapısının bir sunucuya birden çok dış birleştirme göndermediğini, ancak birçok iç birleştirmenin tek bir dış birleştirmeye eşlik edebileceğini unutmayın.
    • Sayısal, dize ve tarih/saat işlevleri --Log(), Mid$(), DatePart() vb. gibi.
    • CInt(), CStr(), CVDate() vb. gibi dönüşüm işlevleri.