{"id":270683,"date":"2022-07-20T11:52:46","date_gmt":"2022-07-20T09:52:46","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=270683"},"modified":"2022-07-20T23:18:43","modified_gmt":"2022-07-20T21:18:43","slug":"lsung-fr-zugriffs-performance-probleme-per-odbc-treiber-auf-access-datenbank","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2022\/07\/20\/lsung-fr-zugriffs-performance-probleme-per-odbc-treiber-auf-access-datenbank\/","title":{"rendered":"L&ouml;sung f&uuml;r Zugriffs-\/Performance-Probleme per ODBC-Treiber auf Access-Datenbank"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2012\/07\/Office1.jpg\" width=\"55\" height=\"60\" align=\"left\" \/>[<a href=\"https:\/\/borncity.com\/win\/?p=25714\" target=\"_blank\" rel=\"noopener\">English<\/a>]Es gibt Nutzer, die mit \u00e4lteren Anwendungen noch auf Access-Datenbanken per ODBC-Treiber zugreifen. Mitunter kommt es dann beim Wechsel auf neuere Hardware\/Windows-Versionen zu Zugriffs- und vor allem Performance-Problemen &#8211; die Datenbankzugriffe sind langsam. Ein Blog-Leser hat mir per Mail einen solchen Fall sowie die von ihm genutzte L\u00f6sung zukommen lassen. Der Ansatz ist f\u00fcr andere Nutzer m\u00f6glicherweise von Interesse.<\/p>\n<p><!--more--><\/p>\n<h2>Kunde mit alter Hardware\/Software<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vg04.met.vgwort.de\/na\/fe046cb2209f43ada43f5dedf2e6f831\" alt=\"\" width=\"1\" height=\"1\" \/>Der Blog-Leser ist Software-Entwickler, der bei einem Kunden auf ein massives Problem mit Access stie\u00df. Denn dieser Kunde setzte noch alte Software aus den 90er-Jahren ein. Dazu schrieb er folgendes:<\/p>\n<blockquote><p>Wir haben (hatten) bei einem Kunden nach Rechnerupdates massive Zugriffsprobleme auf bestehende Access Datenbanken. Der Kunde betreibt diese Datenbanken (Access 2000 Format *.mdb) schon seit Ewigkeiten.<\/p>\n<p>Die verwendete SW stammt in ihren Grundz\u00fcgen noch aus den 90ern und verwendet den 32Bit Access ODBC-Treiber. Wir haben schon mehrfach angeboten auf SQL-Server und eine neuere Datenbank-Lib umzustellen, der Kunde konnte sich aber bisher nicht entscheiden (bzw. will die allumfassende eierlegende Wollmilchsau, die dann zu teuer ist).<\/p><\/blockquote>\n<p>Ich denke, jedem Dienstleister kommt diese Beschreibung bekannt vor, etwas \u00e4hnliches hat jeder schon mal erlebt. Die alte Software kann oft nicht so einfach umgestellt werden, aber es hakt beim Wechsel auf eine neue Windows-Version.<\/p>\n<h2>Hardware-Wechsel l\u00e4sst Situation eskalieren<\/h2>\n<p>Oft ist es so, dass die Kunden irgendwann auf eine neue Hardware wechseln m\u00fcssen, wobei dann auch in der Regel eine neuere Windows-Version f\u00e4llig wird. Und damit fangen die Probleme an. Der Leser beschreibtdie Situation beim Kunden so:<\/p>\n<blockquote><p>Also hat er [der Kunde] nur neue Industrie-PC bestellt und will darauf die alte SW laufen lassen. Daher wurden nur die Hardware-Treiber angepasst und die alte SW installiert.<\/p><\/blockquote>\n<p>Nat\u00fcrlich hat der Dienstleister das vorher getestet und der Leser schreibt: <em>Auf verschiedenen Testmaschinen lief die Software wie zuvor auf den alten PC unter Windows 7 Professional. Datenbankzugriffe liefen im Handumdrehen unter 2 Sekunden<\/em>. Aber es kam, f\u00fcr mich wenig \u00fcberraschend, doch zu Problemen, die der Leser so beschreibt:<\/p>\n<blockquote><p>Auf den neuen Industrie-PC unter Windows 10 sind alle Datenbankzugriffe extrem langsam. Dabei sind die Netzverbindungen ok, normale Dateitransfers laufen mit \u00fcblicher Geschwindigkeit.<\/p>\n<p>Nur SQL-Zugriffe per ODBC auf die auf dem Server liegenden Access-Dateien laufen extrem langsam. Ein Zugriff kann durchaus 5 Minuten dauern. Dabei zeigt der Rechner keine nennenswerte Netz oder CPU Aktivit\u00e4t. Er h\u00e4ngt einfach.<\/p><\/blockquote>\n<p>Der Blog-Leser hat mir noch mitgeteilt, dass die Problem-PCs die aktuelle Windows-Version verwenden, komplett gepatcht sind und kein Office im Einsatz ist.<\/p>\n<h2>Problem eingegrenzt<\/h2>\n<p>Der Leser konnte dann das Problem bei sich im Labor nachstellen und tiefer untersuchen. Sein Fazit: Es scheint einzig und allein am Rechner (seiner Meinung nach an der CPU) zu liegen. Die neuen CPUs sind i7-8700 mit 12 logischen Kernen. Er vermutet, dass da irgendwas blockiert (irgendeine Race-Condition vielleicht), weil die CPU zu schnell ist.<\/p>\n<h2>Ein Workaround hilft<\/h2>\n<p>An dieser Stelle hat der Leser einen Workaround entwickelt, den er mit der Leserschaft teilt &#8211; letztendlich geht es darum, den schnelleren Prozessor f\u00fcr die Datenbankzugriffe auszubremsen. Im speziellen Fall haben bei ihm folgende Ma\u00dfnahmen die L\u00f6sung gebracht:<\/p>\n<ul>\n<li>Die Anzahl Threads im Treiber auf 1 reduziert (!)<\/li>\n<li>Im Programm die Anzahl der genutzten Prozessoren auf 1 gestellt (das geht auch per Taskmanager unter \u201eDetails\", \u201eZugeh\u00f6rigkeit festlegen\", aber dann nur f\u00fcr die aktuelle Instanz)<\/li>\n<li>Auf den 2010er Access-Treiber umgestellt (vllt. nicht unbedingt n\u00f6tig, schien aber ein bisschen was zu bringen)<\/li>\n<\/ul>\n<p>Danach lief das Programm wieder normal. Zum ersten Punkt, die Zahl der Threads im Treiber auf 1 zu reduzieren, hat mir der Leser noch folgenden Hinweis geschickt:<\/p>\n<blockquote><p>Threads im Treiber beschr\u00e4nken:<\/p>\n<p>ODBC-Manager [aufrufen] und dann erweiterte Optionen [w\u00e4hlen]<\/p>\n<p>[dann l\u00e4sst sich die Zahl der Threads auf der Registerkarte System-DSN vorgeben (siehe Screenshot)]<\/p>\n<p>Pfad zur DB am Besten in der Registry anpassen.<\/p><\/blockquote>\n<p><img decoding=\"async\" title=\"ODBC settings\" src=\"https:\/\/i.imgur.com\/gLeQ2ID.png\" alt=\"ODBC settings\" \/><\/p>\n<p>An dieser Stelle mein Dank an den Leser. Vielleicht hilft es mal jemand.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[English]Es gibt Nutzer, die mit \u00e4lteren Anwendungen noch auf Access-Datenbanken per ODBC-Treiber zugreifen. Mitunter kommt es dann beim Wechsel auf neuere Hardware\/Windows-Versionen zu Zugriffs- und vor allem Performance-Problemen &#8211; die Datenbankzugriffe sind langsam. Ein Blog-Leser hat mir per Mail einen &hellip; <a href=\"https:\/\/borncity.com\/blog\/2022\/07\/20\/lsung-fr-zugriffs-performance-probleme-per-odbc-treiber-auf-access-datenbank\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[270,11],"tags":[7391,4298],"class_list":["post-270683","post","type-post","status-publish","format-standard","hentry","category-office","category-problemlosung","tag-access","tag-problemlosung"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/270683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=270683"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/270683\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=270683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=270683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=270683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}