collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 88
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14132
  • stats Beiträge insgesamt: 68386
  • stats Themen insgesamt: 9210
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: SQL Tabelle mit Access Tabelle durch Abfrage füllen  (Gelesen 328 mal)

Offline sellrich

  • Newbie
  • Beiträge: 27
SQL Tabelle mit Access Tabelle durch Abfrage füllen
« am: Oktober 11, 2018, 09:24:37 »
Hallo ihr lieben,

ich habe folgendes Problem :

Durch eine nächtliche Routine in Access werden div. Tabellen gefüllt.
Jetzt möchte ich durch eine Anzahl an Abfragen diese Tabellen in meine neue SQL Datenbank "übertragen"

Dazu habe ich die jeweiligen Tabellen in Access verknüpft und Anfügeabfragen erzeugt.
Die Abfrage nimmt alle Werte aus der Access Tabelle und fügt sie der SQL Tabelle hinzu.

Dies funktioniert zwar mehr oder weniger - dauert jedoch ewig.
Und wenn die Tabelle eine gewisse Größe übersteigt - lädt sich die Abfrage zu Tode.

Meine Frage : Fügen Anfügeabfragen immer die kompletten Datensätze hinzu oder nur die neusten?
Gibt es eventuell eine Alternative/bessere Möglichkeit als eine Anfügeabfrage?

Gruß sellrich
« Letzte Änderung: Oktober 11, 2018, 09:31:22 von sellrich »
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23512
Re: SQL Tabelle mit Access Tabelle durch Abfrage füllen
« Antwort #1 am: Oktober 11, 2018, 10:16:54 »
Hallo,

nur zur Frage

Zitat
Fügen Anfügeabfragen immer die kompletten Datensätze hinzu oder nur die neusten?

Anfügeabfragen fügen immer diejenigen Datensätze an, die durch die Where-Condition definiert werden.

Sobald aber ein Konflikt mit eindeutigen Indizes auftaucht, wird der entspr. DS nicht angefügt.


Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: SQL Tabelle mit Access Tabelle durch Abfrage füllen
« Antwort #2 am: Oktober 11, 2018, 10:27:06 »
Eine Abfrage ohne Kriterien nimmt sich die gesamte zur Verfügung stehende Datenmenge vor.

Bei verknüpften Tabellen müssen alle Daten durch das Nadelöhr DAO-Library gezwängt werden. Mein PostgreSQL-Server (andere SQL-Server können das vermutlich auch) importieren CSV-Daten in Windeseile.
Grüße von der (⌒▽⌒)
 

Offline PhilS

  • Global Moderator
  • Access-Profi
  • *****
  • Beiträge: 391
    • Tipps zu Access, VBA, SQL und Co.
Re: SQL Tabelle mit Access Tabelle durch Abfrage füllen
« Antwort #3 am: Oktober 11, 2018, 11:02:22 »
Bei verknüpften Tabellen müssen alle Daten durch das Nadelöhr DAO-Library gezwängt werden. Mein PostgreSQL-Server (andere SQL-Server können das vermutlich auch) importieren CSV-Daten in Windeseile.
Ja, aber...
Mann sollte dabei bedenken, dass für einen direkten Import von Daten in ein DBMS oft auch der Prozess, in dem das Server-DBMS läuft, Zugriffsrechte auf die zu importierende Datei benötigt. I.d.R. muss diese dafür auf einem lokalen Laufwerk auf dem Server-Rechner liegen.
Neues Access 2019 Feature angekündigt: Modern Charts
 

Offline sellrich

  • Newbie
  • Beiträge: 27
Re: SQL Tabelle mit Access Tabelle durch Abfrage füllen
« Antwort #4 am: Oktober 11, 2018, 11:52:54 »
Zitat
Bei verknüpften Tabellen müssen alle Daten durch das Nadelöhr DAO-Library gezwängt werden.

Also wäre ein erneuter Import der Daten und anschließendes Ausführen der Anfügeabfrage schneller? Das werde ich mal probieren. Allerdings kann ich die Ziel-Tabellen nicht importieren, da diese ja SQL-Tabellen sind. Oder?
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: SQL Tabelle mit Access Tabelle durch Abfrage füllen
« Antwort #5 am: Oktober 11, 2018, 12:11:57 »
Um genau zu sein, benötigt man einen lokales Programm, das sich mit dem Server verbinden kann. Bei Access werden die Daten durch DAO an die ODBC-Schnittstelle und danach an den ODBC-Treiber weitergeleitet, der, im Fall von PostgreSQL erst dann über die libpq.dll mit dem Server kommuniziert.

Ein lokal installiertes psql oder auch Tools wie HeidiSQL sind im Stande, CSV-Daten schnell (im Sinne von: was das Netzwerk erlaubt) in PostgreSQL-Tabellen zu übertragen. Beide Programme kommunizieren dann direkt mit der libpq.dll.

Nun, da wir aber nicht wissen, um welchen Datenbank-Server es sich hier handelt, noch die Datenmenge und die Netzwerkkonstellation, sowie verwendete Treiber nebst Konfiguration kennen und auch nicht wissen, was der Threadersteller unter ewig versteht, wird man wohl kaum die Stellschraube zur Beschleunigung des Vorgangs finden.
Grüße von der (⌒▽⌒)
 

Offline PhilS

  • Global Moderator
  • Access-Profi
  • *****
  • Beiträge: 391
    • Tipps zu Access, VBA, SQL und Co.
Re: SQL Tabelle mit Access Tabelle durch Abfrage füllen
« Antwort #6 am: Oktober 12, 2018, 15:16:45 »
Um genau zu sein, benötigt man einen lokales Programm, das sich mit dem Server verbinden kann. Bei Access werden die Daten durch DAO an die ODBC-Schnittstelle und danach an den ODBC-Treiber weitergeleitet, der, im Fall von PostgreSQL erst dann über die libpq.dll mit dem Server kommuniziert.
Die von mir genannten Einschränkung gelten dann, wenn man ein serverseitiges Feature (z.B. BULK INSERT (MS-SQL-Server) oder LOAD DATA INFILE (MySQL)) verwendet. Diese sind nochmal wesentlich effektiver, aber eben nicht in allen Situationen anwendbar. - In den meisten Situationen  sollten auch die clientseitigen Alternativen brauchbare Lösungen darstellen.

Also wäre ein erneuter Import der Daten und anschließendes Ausführen der Anfügeabfrage schneller? Das werde ich mal probieren. Allerdings kann ich die Ziel-Tabellen nicht importieren, da diese ja SQL-Tabellen sind. Oder?
Die Zieltabellen selbst importiertst du üblicherweise nicht, sondern nur die Daten darin. Dies kann auf verschiedenen Wegen erfolgen. Die Anfügeabfragen aus Access sind vermutlich der bequemste, aber auch der am wenigsten performante.

Ggfls. solltest du mehr Informationen zu deiner konkreten Problemstellung liefern.
Neues Access 2019 Feature angekündigt: Modern Charts
 

 

Wie seid ihr auf Access-o-Mania gestoßen?

Begonnen von HondoBoard Smalltalk

Antworten: 27
Aufrufe: 27460
Letzter Beitrag Februar 02, 2014, 17:41:44
von Bolle
MySQL Control Flow Functions in Access

Begonnen von DirkBoard Tabelle/Abfrage

Antworten: 11
Aufrufe: 8506
Letzter Beitrag März 03, 2011, 14:01:35
von imp666
Access aus Taskleiste ausblenden

Begonnen von MjayBoard Access Programmierung

Antworten: 5
Aufrufe: 4880
Letzter Beitrag August 30, 2010, 13:43:40
von Stefan Kühnen
Bilder im Access Formular

Begonnen von melisyBoard Formular

Antworten: 3
Aufrufe: 3726
Letzter Beitrag Juni 08, 2010, 09:14:37
von DF6GL
ACCESS 2007 Mausrad scrollen

Begonnen von Klaus S. aus BBoard Formular

Antworten: 10
Aufrufe: 17881
Letzter Beitrag Juli 27, 2011, 11:19:08
von Rainer Schöller