collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 42
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13949
  • stats Beiträge insgesamt: 66290
  • stats Themen insgesamt: 8936
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Eine weitere Access-Datei öffnen wenn...  (Gelesen 1641 mal)

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1223
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #15 am: Februar 23, 2018, 18:23:17 »
Mit einen Mewhrfachindex über die Felder Gruppe, Textfeld1 lässt sich das Laufzeitverhalten vermutlich noch weiter verbessern.
Grüße von der (⌒▽⌒)
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 883
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #16 am: Februar 23, 2018, 22:37:11 »
Eine Variante, die man vielleicht auch prüfen könnte, wäre der Weg der Kreuztabellenabfrage:
TRANSFORM
   MIN(beschr_wert) AS Minvonbeschr_wert
SELECT
   gruppe,
   textfeld1
FROM
   tbl
GROUP BY
   gruppe,
   textfeld1
PIVOT
   sortnr
Falls die Textzusammensetzung notwendig ist, könnte man die so anschließen:
SELECT
   K.gruppe,
   K.[001] & (';' + K.[002]) & (';' + K.[003]) & (';' + K.[004]) & (';' + K.[005]) & (';' + K.[006]) AS liste,
   K.textfeld1
FROM
   tbl_Kreuztabelle AS K
Mit freundlichem Glück Auf!

Eberhard
 
Folgende Mitglieder bedankten sich: Torsten.

Offline Frithjiof

  • Access-User
  • *
  • Beiträge: 74
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #17 am: Februar 24, 2018, 03:07:24 »
Hallo.

Ich habe mich der Sache auch mal angenommen und ein Beispiel gebastelt.
Hier werden zwischen  700.000 und 800.000 Datensätze in 7 - 8 Minuten verarztet. (Also weit unter 36 Stunden)

Im Modul mdTest die Prozedur <machtabelle> ausführen. Die erstellt
> 700.000 Datensätze
Anschließend die Prozedur <machErgebniss> ausführen.

Frithjof
 
Folgende Mitglieder bedankten sich: Torsten.

Offline Torsten.

  • Access-Profi
  • **
  • Beiträge: 155
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #18 am: Februar 24, 2018, 09:59:17 »
Moin zusammen
@Eberhard
Ich habe zunächst den Code aus Antwort #14 in meine orig. DB eingebaut und funktioniert. Vielen Dank.
Ich werde jetzt versuchen den Code aus #16 auszuprobieren.
Melde mich dann wieder.

@Lachtaube
Zitat
Mit einen Mewhrfachindex über die Felder Gruppe, Textfeld1 lässt sich das Laufzeitverhalten vermutlich noch weiter verbessern.
Gut, nur wie stellt man denn fest wann eine Indizierung nötig/von Vorteil (wahrscheinlich wenn zu langsam) ist und welches Feld sollte den Index bekommen?
Z.B. der Hinweis von Eberhard in Antwort #7
Zitat
Zusätzlich sollte auf sortnr ein Index gesetzt werden.
da wäre ich nie drauf gekommen das umzusetzen, weil einfach das Verständnis fehlt - aber ich versuche zu lernen.

@Frithjof
Da werde ich mich mit beschäftigen, melde mich dazu dann wieder
Vorab vielen Dank

Gruß Torsten.
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1223
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #19 am: Februar 24, 2018, 11:45:28 »
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Torsten.

Offline Torsten.

  • Access-Profi
  • **
  • Beiträge: 155
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #20 am: Februar 24, 2018, 12:05:46 »
@Lachtaube
Ok, danke für die Quellen.

Gruß Torsten.
 

Offline Torsten.

  • Access-Profi
  • **
  • Beiträge: 155
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #21 am: Februar 24, 2018, 12:22:02 »
@Frithjof
Ich habe testweise einen Teildurchlauf gestartet, ca. Werte meiner Daten im Vergleich zu Deiner Demo_Ver_1 ist wie folgt:
840Tsd Ds in tbl
230Tsd Ds in tblErgebnis (erhalten mit Eberhards Code aus #14 ca. 7 Std.)
Nach Start "machErgebnis" habe ich ca. 1500 Ds nach 8 Min. erhalten.
Hochgerechnet auf das Ergebnis von 230Tsd DS würde es ca. 20 Std. dauern.

Zur Info noch:
In den 840Tsd Ds sind pro gleicher "Gruppe" bis zu 35 Ds.
Feld "Liste" in tblErgebnis ist dementsprechend ein Memo-Feld, falls das wichtig ist.

Gruß Torsten.


 

Offline Torsten.

  • Access-Profi
  • **
  • Beiträge: 155
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #22 am: Februar 24, 2018, 13:41:10 »
@Eberhard
im Vorschlag aus #16 funktioniert der Code für die Textzusammensetzung nicht.
Kannst Du bitte schauen was ich möglicherweise falsch gemacht habe?
DB ist angehängt.

Gruß Torsten
 

Offline Frithjiof

  • Access-User
  • *
  • Beiträge: 74
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #23 am: Februar 24, 2018, 13:56:08 »
Hallo Torsten.

Zitat
In den 840Tsd Ds sind pro gleicher "Gruppe" bis zu 35 Ds.
Feld "Liste" in tblErgebnis ist dementsprechend ein Memo-Feld, falls das wichtig ist.

Die Frage ist was sich zwischen deiner Originaldatei und der  Test-DB sonst noch alles unterscheidet? Ich habe in der Test-DB Tabelle  <tbl> lediglich einen Index auf die Gruppe gesetzt.

Ein Versuch mit
- tblErgebnis = Memo-Feld
- bis zu 35 Datensätzen in einer Gruppe
- mit > 1.000.000 Datensätzen in  Tabelle <tbl> .

Die Ergebnistabelle enthält 93.750 Datensätze.
Bearbeitungszeit: 219 Sekunden

Ein  Versuch mit 
- mit > 230.000 Datensätzen in <tbl> .
Die Ergebnistabelle enthält 31.750 Datensätze.
Bearbeitungszeit: 78 Sekunden

(Access 2013, ssd-platte, 8 GB Ram, core i5 )


Du kannst das einfach mit den Testdaten ausprobieren.
1.   Im Modul mdTest  <machtabelle>  ausführen.
Es werden zwischen 200.000 und 300.000 Datensätze erstellt.
(An den Forschleifen kann man noch rumspielen und die Anzahl erhöhen oder vermindern.)

2.   Anschließend <machErgebnis> ausführen.
Im Direktfenster wird ein Wert hochgezählt und am Ende die Bearbeitungszeit in Sekunden ausgegeben.

Frithjof
 
Folgende Mitglieder bedankten sich: Torsten.

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 883
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #24 am: Februar 24, 2018, 14:03:27 »
In meinem Vorschlag bezieht sich die Bezeichnung "tbl_Kreuztabelle" auf die vorher gezeigte Kreuztabellenabfrage (Bezeichnung ist etwas unglücklich gewählt). Leider ließ sich diese Abfrage nicht direkt als Unterabfrage einbinden.
Mit freundlichem Glück Auf!

Eberhard
 
Folgende Mitglieder bedankten sich: Torsten.

Offline Frithjiof

  • Access-User
  • *
  • Beiträge: 74
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #25 am: Februar 24, 2018, 15:27:38 »
@Torsten.
ich habe es jetzt noch mal ohne Index getestet. In der Tat läuft es ist es dann extrem lahm. (=aus Minuten werden Stunden)
Also setze in jedem Fall auf das Feld Gruppe einen Index.

Ansonsten ist meine Routine etwas schneller als Eberhards. 260 Sekunden zu 400 Sekunden bei ca. 1.000.000 Datensätzen und 100.000 Ergebnissen.
 
So, jetzt gehe ich Sonne.

Frithjof
 
Folgende Mitglieder bedankten sich: Torsten.

Offline Torsten.

  • Access-Profi
  • **
  • Beiträge: 155
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #26 am: Februar 24, 2018, 16:44:52 »
@Frithjof
So, habe den Index gesetzt und es ist um ein vielfaches schneller geworden:
840Tsd DS zu 234Tsd in 316 Sekunden, allerdings unsortiert.
Würdest Du bitte noch die Sortierung nach "sortnr" einarbeiten?
Danach könnte ich mal die gesamten Tabelle auf mein Projekt umschreiben (Feldnamen etc.) und dann sehen wie schnell es geht.
Gruß Torsten.
 

Offline Torsten.

  • Access-Profi
  • **
  • Beiträge: 155
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #27 am: Februar 24, 2018, 16:52:12 »
@Eberhard
Zitat
In meinem Vorschlag bezieht sich die Bezeichnung "tbl_Kreuztabelle" auf die vorher gezeigte Kreuztabellenabfrage (Bezeichnung ist etwas unglücklich gewählt). Leider ließ sich diese Abfrage nicht direkt als Unterabfrage einbinden.

Ich lese Deine Info  8)"rauf und runter, rechts und links" 8) aber ich verstehe nicht wie ich es umsetzen muß um zum Ergebniss zu kommen. Bitte helfe mir das zu verstehen.

Vielen Dank, Torsten.
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 883
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #28 am: Februar 24, 2018, 23:01:44 »
In Beitrag #16 sind zwei Abfragen gezeigt. Die erste ist eine Kreuztabellenabfrage. Diese ist unter einem Namen abzuspeichern.
Die zweite Abfrage verwendet diese Kreuztabellenabfrage als Datenbasis, also müsstest Du
- beide Abfragen übernehmen,
- in der zweiten Abfrage den Namen der Kreuztabellenabfrage übernehmen, der unglücklich "tbl_Kreuztabelle" lautet.

Sinnvolle Indizierungen dabei:
=> zusammengesetzter Index auf gruppe + textfeld1
=> Index auf sortnr
Mit freundlichem Glück Auf!

Eberhard
 
Folgende Mitglieder bedankten sich: Torsten.

Offline Torsten.

  • Access-Profi
  • **
  • Beiträge: 155
Re: Eine weitere Access-Datei öffnen wenn...
« Antwort #29 am: Februar 26, 2018, 08:37:21 »
Alles klar, verstanden.
Vielen Dank für die Geduld   :)