Office: (Office 2007) geht die auch schneller?

Helfe beim Thema geht die auch schneller? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Spezialisten, ich habe hier diese schöne function, leider bei großeren Datenmengen uuh langsam,.....langsam. Wie bekomme ich ein schnelleres... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Olaf.S, 4. November 2008.

  1. geht die auch schneller?


    Hallo Spezialisten,
    ich habe hier diese schöne function, leider bei großeren Datenmengen uuh langsam,.....langsam.
    Wie bekomme ich ein schnelleres Gesamt ergebniss hin.

    ?kann mann nicht den gesamtdatensatz in ein recordset laden, mit einem weitern RS2 im RS1 die daten zusammenfassen , und dann zum abgefragten Krit das ergebniss liefern?!?!?

    wirds daduch schneller?

    wie? mache ich es dann?
    schränkt dann wohl die möglichkeit bei einer Qurery ,dann aus!?

    Grüße & Danke Olaf


    Code:
    :)
     
  2. Gibt es einen passenden Index in der Tabelle?
    Zumindest ein Index über das Feld von Krit_IDNAME sollte helfen.
    Noch besser wäre ein 2-Felder Index über Krit_IDNAME und Krit_SpaltenName.
    Wobei is not null vom Jet-Abfrageoptimierer vermutlich nicht mit einem Index-Seek versehen wird. feld > '' bei einem Textfeld bzw. feld > [kleinstmöglicherWert] ist dem Jet-Abfrageoptimierer lieber.

    BTW: Group By Krit_IDNAME ist ziemlich umsonst, da nur ein Wert vorkommen kann.


    Such auch einmal nach ConcatVar von Michael Zimmermann.
     
    Josef P., 6. November 2008
    #2
  3. Hallo Josef,

    Indexe und is not null sind sicher gestellt, hilft leider nicht.
    Was hälst Du von meiner idee geht das überhaupt?

    Danke
    Olaf
     
  4. geht die auch schneller?

    Wast ist denn das gewünschte Ziel der Übung?
    Evtl. hilft Dir DLookUp bzw. die alternative TLookUp von Sascha weiter.
     
    CptChaos, 6. November 2008
    #4
  5. Ich verstehe nicht, wo in der gezeigten Prozedur ein zweites Recordset helfen soll.
     
    Josef P., 6. November 2008
    #5
  6. Hallo,
    allso das ziel ist es bei 20t Datensätzen bei ca 1200 St KDnr einen schnelleres end ergebniss herzustellen.
    Wartezeit jetzt ca 10min und gefühlte ehwig minuten. *grins , nein ich muss das jeden Tag wiederholen deswegen.

    Nun meine Idee ist es ein RS solange offen zuhalten bis alle KD sätze durch sind, müßte doch schneller sein oder?

    Mist wenn ichs doch besser verballisieren könnte *mad.gif*

    Ich mein wenn ich das wie heute mache Query mit den Grup KDNR öffnet dann 1200 mal die 20t DB das ist doch das Zeitliche problem.

    kann ich nicht die DB mit den 20t DS einmal öffnen und mit einem 2 RS oder sonstigem..... die KD DB und übergbe.

    Und jetzt noch das ganze als Funktion via Query!!

    Geht das überhaupt

    Grüße und Danke

    Olaf
     
  7. Verstehe ich dich richtig: du willst die Funktion "getDetailsemi" in einer Abfrage einsetzen.

    Prinzip:
    Code:
    Das wäre somit 1200 Einsätze der getDetailsemi-Funktion.
    Das sollte niemals 10 Minuten dauern, wenn ein Index verwendet wird.
    Falls du auf eine verknüpfte Tabelle zugreifst, solltest du aber die wichtigste Maßnahme zur Geschwindigkeitsoptimierung beachten: ein dauerhaftes Recordset zum BE öffnen. Ich könnte mir vorstellen, dass das auch in diesem Fall etwas helfen kann.

    Weiters könntest du noch statt CurrentDb nur eine einzige Refernez verwenden. (CurrentDbC usw.)

    Das Beispiel von Michael Zimmermann hast du hoffentlich bereits angesehen und die Optimierungsmaßnahmen in deine Prozedur übernommen.


    Bezüglich deiner Idee mit den 2 Recordsets: ich glaube nicht, dass du damit schneller Daten abfragen kannst als über eine optimierte SQL-Anweisung, die einen Index verwendet.
     
    Josef P., 7. November 2008
    #7
  8. geht die auch schneller?

    Ich lese das Ganze interessiert mit, verstehe aber noch nicht die Situation. In der Funktion getDetailsemi übergibst Du als 4. Parameter einen Tabellen-/Abfragenamen.

    Um wieviele Tabellen/Abfragen geht es denn? Hat jede 20T Datensätze?

    Ich würde nach Deiner Beschreibung deuten, dass Du die genannte Funktion 1.200x ausführst (mit wechselnden Parametern) und das daher das Tempoproblem herrührt.
    Daher könnte es ein Ansatz sein, die Parameter deutlich weiter zu fassen und z.B. ein Recordset pro Tabelle/Abfrage mit allen relevanten Feldern zu öffnen und auszuwerten.
     
  9. Hallo
    ich frage mich nur noch ob Dir Bei 20t Ds nicht Dein String Feld Result
    überläuft ? wird überigens nirgens geleert/ initialisiert

    sonst hast Du von Josef und Eberhard schon alle guten Tip's erhalten
     
    Lanz Rudolf, 7. November 2008
    #9
  10. Im Anhang (#13) eine Test-Anwendung - allerdings mit lokaler Tabelle, dafür mit 200000 DS.
    (Die Testdaten müssen zuvor mit der Prozedur "TestDatenAnfuegen" erstellt werden.)
    In diesem Beispiel verwende ich das ConcatVar-Beispiel von Michael Zimmermann mit minimalen Änderungen.
     
    Josef P., 7. November 2008
    #10
  11. Hallo Josef,
    meine Indexe habe ich noch ein mal konrtoliert, alles wie es sein muß.
    Ja die grundlegenden Daten kommen zwar aus einer vernüpften Tabelle die habe ich aber via insert fest als ExcelGesamt abgelegt und mit Alter tabel den Index angelegt.

    Den Code vom zimmerman verstehe ich noch nicht ganz, wobei mir ein Fehler beim testen ständig an dieser stelle ausgegeben wird.
    Code:
    Aufruf erfolgt über ?ConcatVar("Cat","ExcelGesamt", "DLNR","8007272", ";",";")

    Hast du eine Idee?


    @ Hallo Rudolf
    überlaufsperre fehlt noch aber das ergebniss ist im allgemeinen kleiner 255 zeichen,. Danke für den hinweis!

    @ Hallo ebs
    die daten kommen aus einer tabelle

    Binn begeistert,
    Danke für eure unterstützung
     
  12. Hallo Josef,

    Habe gerade deine test db ausprobiert is der hammer, jetzt kann ich deine aussagen verstehen ist die schnell.

    erst mal danke , ich werde die Zimmermann lösung aufjedenfall bei mir umsetzen. der hammer...


    Danke an Alle
     
  13. geht die auch schneller?

    Bei der von Michael geposteten Variante ist der String T etwas zu klein.
    So ein Fehler im Code kann auch dafür sorgen, dass der Code nicht 1:1 übernommen wird. *biggrin.gif*

    [OT]
    Ich erwähnte einmal, dass Feld > '' besser als Feld IS NOT NULL ist. Ich diesem Beispiel bringt das überhaupt nichts. Jet merkte bei meinem Test nicht, dass ein Index vorhanden wäre, der alle erforderlichen Felder enthält. Gemäß Jet-Showplan entstand:
    Code:
    .. immerhin Rushmore. *Smilie
    => 2er-Index über fiT1 und T bring für diesen Abfragefall nichts.
    Im Anhang daher noch eine Variante, die auf NOT NULL prüft und somit auch ein Zusammenfügen von Zahlenfeldern ohne besonderen Aufwand ermöglicht. .
    Wenn statt einem Textfeld ein Zahlenfeld verwendet wird, dann klappt auch die Indexverwendung:
    Code:
     
    Josef P., 7. November 2008
    #13
  14. Hallo Josef,

    ich habe mal die Datensatzerstellung um den Faktor 5 erhöht. Diese dauert etwas länger, die Abfrage selber (gefühlt etwa 1 sec.) nicht.
    Atemberaubend. Stark.
     
  15. Lösche einmal die Beziehung zw. den beiden Tabellen und führe dann die Abfrage noch einmal aus. ... dann siehst du was ein Index bewirken kann. *Smilie
    (Anm.: den anfangs eingefügten 2-Felder-Index nahm ich aus der Tabelle wieder raus. Für ConcatVar wurde nur der Index von der Beziehung verwendet.)
     
    Josef P., 7. November 2008
    #15
Thema:

geht die auch schneller?

Die Seite wird geladen...
  1. geht die auch schneller? - Similar Threads - schneller

  2. Schneller Suchen und Filtern

    in Microsoft Access Hilfe
    Schneller Suchen und Filtern: Guten Abend Ich habe eine Rezeptdatenbank, mit der ich auch im Prinzip zufrieden bin. Sie hat allerdings einen Haken, was das Suchen/Filtern betrifft. Diese Geschichte ist in meiner DB zu langsam....
  3. Vorlage zum schnellen erstellen von Übersichten

    in Microsoft PowerPoint Hilfe
    Vorlage zum schnellen erstellen von Übersichten: Moin, und zwar folgendes: Ich frage mich ob es eine Funktion gibt, mit der man z.B. einfach ein oder 2 Textfelder anordnet und die irgendwie da speichert und man dann einfach dadrunter ein "+"...
  4. PRODUKT sprengt schnell Excel-Zahlenraum. Abhilfe!

    in Microsoft Excel Tutorials
    PRODUKT sprengt schnell Excel-Zahlenraum. Abhilfe!: 1 2 3 4 5 seien als Zahlen gegeben. =PRODUKT(A1:A5) = 120 =GEOMITTEL(A1:A5) = 2,60517108 (oder mit anderen Worten: Es liegt immer zwischen MIN und MAX, wie jedes Mittel) Und nun kommts:...
  5. Arbeitsmappe per Button schnell sperren

    in Microsoft Excel Hilfe
    Arbeitsmappe per Button schnell sperren: Hallo, Ich habe die Excel-Tabelle mit den Lieferantenpreise erstellt, mit einem Datenschnitt hat man schnellen Zugriff auf die Lieferanten und geht soweit auch ganz gut. Jetzt möchte ich...
  6. Schnellere Lösung als Index Vergleich gesucht um aus Zeileninfos Matrix zu bilden

    in Microsoft Excel Hilfe
    Schnellere Lösung als Index Vergleich gesucht um aus Zeileninfos Matrix zu bilden: Hallo ich habe folgenden Sachverhalt: Personaldaten und Veränderungen in Gehältern werden im Sheet 'Liste' in Listenform erfasst. Für jede Gehaltsänderung bekommt der jeweilige MA eine neue Zeile...
  7. Bieten Sie schnelle Lösungen für Patientenfragen

    in Microsoft Outlook Tutorials
    Bieten Sie schnelle Lösungen für Patientenfragen: Bieten Sie schnelle Lösungen für Patientenfragen Outlook 2019 SharePoint in Microsoft 365 Outlook 2016 Microsoft Teams Mehr... Weniger...
  8. VBA Auswahl wird schnell wieder ausgeblendet

    in Microsoft Access Hilfe
    VBA Auswahl wird schnell wieder ausgeblendet: Guten Tag Seit kurzen wird beim Eingeben von VBA die möglichen Vorgaben nur noch kurz eingeblendet. Gehen dann aber sofort wieder weg. Wenn ich z.B. -> "me." eingeben, dann kommt üblicherweise...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden