Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL Abfrage ind access verursacht ODBC Aufruf fehlgeschlagen

Frage Microsoft Microsoft Office

Mitglied: chrislm

chrislm (Level 1) - Jetzt verbinden

11.03.2013, aktualisiert 16:41 Uhr, 3329 Aufrufe, 2 Kommentare

Hallo.
mittlerweile schleicht sich ein kleines Problem an. Wir füttern eine SQL Datenbank jeden Tag mit Daten über Access als Frontend. In der Datenbank sind zurzeit 218659 Datensätze. Diese werden regelmäßig nach Doppler überprüft. Leider kommt nun sehr oft die Fehlermeldung ODBC Aufruf fehlgeschlagen. Die Timeouts habe ich schon soweit hochgesetzt aber daran lag es nicht. Hat jemand eine Idee woran es liegen könnte? - alles andere Funktioniert.
01.
SELECT [GW-Karten].Name, [GW-Karten].Vorname, [GW-Karten].Strasse, [GW-Karten].PLZ, [GW-Karten].Ort, [GW-Karten].ID, [GW-Karten].[PVA-NR], [GW-Karten].Firmen_KZ, [GW-Karten].Erfassungsdat, [GW-Karten].Doppler, [GW-Karten].[Tel falsch], [GW-Karten].[Karte nicht leserlich], [GW-Karten].[Unterschrift fehlt], [GW-Karten].[Karte ungülltig], [GW-Karten].MJ, [GW-Karten].Ausländer 
02.
FROM [GW-Karten] 
03.
WHERE ((([GW-Karten].Name) In (SELECT [Name] FROM [GW-Karten] As Tmp GROUP BY [Name],[Vorname],[Strasse],[PLZ],[Ort] HAVING Count(*)>1  And [Vorname] = [GW-Karten].[Vorname] And [Strasse] = [GW-Karten].[Strasse] And [PLZ] = [GW-Karten].[PLZ] And [Ort] = [GW-Karten].[Ort])) AND (([GW-Karten].Firmen_KZ)=[Welche Orga?]) AND (([GW-Karten].Erfassungsdat) Between [von Erfassungsdatum?] And [bis Erfassungsdatum?])) 
04.
ORDER BY [GW-Karten].Name, [GW-Karten].Vorname, [GW-Karten].Strasse, [GW-Karten].PLZ, [GW-Karten].Ort;
Mitglied: Biber
11.03.2013, aktualisiert 12.03.2013
Moin chrisIm,

Die Timeouts habe ich schon soweit hochgesetzt aber daran lag es nicht
Kennst du den Ausdruck "Toller Plan" und hast du ihn in letzter Zeit mal von eurem DBA gehört?

Vielleicht könntet ihr einfach diess Klicki-Bunti-generierte Gestrunkele mal von Hand anfassen und einfach etwas Performantes draus machen.
Oder bzw. und ein paar unterstützende Indizes auf diese 10 Felder lange GROUP BY/Alternate key-Unappetitlichkeit legen.

Ist dir folgender kleiner Gag in der Abfrage aufgefallen?
.... WHERE ((([GW-Karten].Name) In (SELECT [Name] FROM [GW-Karten] As Tmp GROUP BY [Name....(+x Felder)..
???

Bedeutet: Wenn die Group-by-Abfrage einen vermeintlich doppelten "Müller", "Thomas" in "12345" "Schwartenkrachdorf" findet...
-> dann werden ALLE Datensätze mit Name="Müller" zurückgeschickt????

Warum dauert die Query wohl so lange?

Dennoch : mit den paar Datensätzen einen SQL-Server/eine Datenbankengine zum Abblocken zu bewegen... das schafft nicht jeder.

--> optimier den Krams.

Aus Interesse: Wie lange braucht denn heute so eine Query, falls sie durchgeht?

Grüße
Biber
Bitte warten ..
Mitglied: chrislm
12.03.2013 um 09:25 Uhr
je nach dem dauert es 30 - 40 Sekunden. Die Abfrage ist von Access generiert worden um Doppler zu finden. Wenn es auch etwas länger dauert, ist es eigentlich immer zweckgemäß. Der vorteil liegt halt daran dass man z.B. was man letzte Woche eingegeben hat mit der kompletten Datenbank die Doppler abgleicht. Danach werden die Doppler von Hand markiert. Wie könnte man denn das Problem besser lösen..?
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...