[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2010
    Beiträge
    11

    ADO SQL in Access über nicht indexiertes Feld auf der AS/400 abfragen

    Hallo zusammen,

    ich muss gleich vorweg sagen, dass ich noch neu auf dem Gebiet der Abfragen in VBA auf den AS/400 bin.

    Habe dazu folgende Frage:

    Wenn ich direkt aus VBA heraus auf eine AS/400 zugreife und das Selektionskriterium kein Indexiertes Feld auf der AS/400 ist, dann dauert die Abfrage ewig lange (ca. 6 Minuten bei einer Datei mit ca. 16 Mio Datensätzen).

    Diese Abfrage sieht dann folgendermaßen aus:

    __________________

    Public Sub as400_Connect()

    Dim MyConn As New ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sql As String
    Dim DB As DAO.Database
    Dim STR As String
    Dim strFakturnummer as String

    strFakturnummer = inputbox("Bitte geben Sie die Fakturnummer ein:")



    Set DB = CurrentDb

    Set MyConn = New ADODB.Connection
    MyConn.Open "Provider=IBMDA400;Data Source=xxxx;", "xxxx", "xxxx"


    Set rs = New ADODB.Recordset
    Set rs.ActiveConnection = MyConn
    Set DB = CurrentDb
    With MyConn


    sql = "SELECT * from FPRDDTA.LFSVHD13 where HDNFAK = "
    & strFakturnummer

    rs.Open sql

    Do Until rs.EOF
    Debug.Print rs.Fields("hdnauf")
    rs.MoveNext
    Loop
    End With
    rs.Close

    End Sub

    __________________

    Gibt es eine oder mehrere Möglichkeiten, diese Abfrage in Access deutlich zu beschleunigen - vielleicht indem man das Feld über SQL irgendwie indexiert? Sicher haben Sie diverse Lösungsansätze parat.

    Vielen Dank im voraus!

    Grüße,
    Wilfried

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... ich kann mir kaum vorstellen, dass es für die Fakturnummer keinen Index geben soll, gehört da vielleicht noch eine Firmennummer, oder ähnliches dazu?

    Sollte das allerdings wirklich fachlich richtig sei und da nicht ein wesentlicher Teil des Schlüssels fehlen, hilft da ein create index durch den Datenban Verantwortlichen (keinesfalls by the fly im Anwendungsprogramm.

    D*B

    Zitat Zitat von gerhardsw Beitrag anzeigen
    Hallo zusammen,

    ich muss gleich vorweg sagen, dass ich noch neu auf dem Gebiet der Abfragen in VBA auf den AS/400 bin.

    Habe dazu folgende Frage:

    Wenn ich direkt aus VBA heraus auf eine AS/400 zugreife und das Selektionskriterium kein Indexiertes Feld auf der AS/400 ist, dann dauert die Abfrage ewig lange (ca. 6 Minuten bei einer Datei mit ca. 16 Mio Datensätzen).

    Diese Abfrage sieht dann folgendermaßen aus:

    __________________

    Public Sub as400_Connect()

    Dim MyConn As New ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sql As String
    Dim DB As DAO.Database
    Dim STR As String
    Dim strFakturnummer as String

    strFakturnummer = inputbox("Bitte geben Sie die Fakturnummer ein:")



    Set DB = CurrentDb

    Set MyConn = New ADODB.Connection
    MyConn.Open "Provider=IBMDA400;Data Source=xxxx;", "xxxx", "xxxx"


    Set rs = New ADODB.Recordset
    Set rs.ActiveConnection = MyConn
    Set DB = CurrentDb
    With MyConn


    sql = "SELECT * from FPRDDTA.LFSVHD13 where HDNFAK = "
    & strFakturnummer

    rs.Open sql

    Do Until rs.EOF
    Debug.Print rs.Fields("hdnauf")
    rs.MoveNext
    Loop
    End With
    rs.Close

    End Sub

    __________________

    Gibt es eine oder mehrere Möglichkeiten, diese Abfrage in Access deutlich zu beschleunigen - vielleicht indem man das Feld über SQL irgendwie indexiert? Sicher haben Sie diverse Lösungsansätze parat.

    Vielen Dank im voraus!

    Grüße,
    Wilfried
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2010
    Beiträge
    11
    Hallo! Danke für die schnelle Rückinfo. Wenn ich über Access eine Verknüpfung auf die AS/400 Tabelle erstelle, sind doch grundsätzlich die Schlüsselfelder fett markiert, oder? Falls ja ist dieses Datenfeld wirklich nicht indexiert. Eine gleiche Abfrage über einen Range einer Auftragsnummer (welche fett markiert angezeigt wird) ist in Sekunden erledigt. Das spricht ja eher dafür... Gibt es denn evtl. auch noch andere, performantere Möglichkeiten um hier zum Ziel zu kommen?!

    Viele Grüße,
    Wilfried

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... ich würde da mit oder rechnen, ich weiß zwar nicht, was access da anzeigt, aber ich vermute mal den Primärschlüssel.
    Wenn es da anderes als eine Index gäbe, hätte ich das schon mit genannt.
    Ich würde aber nochmal dringend empfehlen, mal abzuklären, ob das genau so Sinn macht, üblicherweise kann man davon ausgehen, dass für Standard Varianten von Abfragen Zugriffspfade da sind.

    D*B

    Zitat Zitat von gerhardsw Beitrag anzeigen
    Hallo! Danke für die schnelle Rückinfo. Wenn ich über Access eine Verknüpfung auf die AS/400 Tabelle erstelle, sind doch grundsätzlich die Schlüsselfelder fett markiert, oder? Falls ja ist dieses Datenfeld wirklich nicht indexiert. Eine gleiche Abfrage über einen Range einer Auftragsnummer (welche fett markiert angezeigt wird) ist in Sekunden erledigt. Das spricht ja eher dafür... Gibt es denn evtl. auch noch andere, performantere Möglichkeiten um hier zum Ziel zu kommen?!

    Viele Grüße,
    Wilfried
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. MS Access ODBC mit JOIN: SQL FEHLER666
    By olafu in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-10-06, 08:13
  2. AS/400 ruft MRxSmb Fehler auf WinXP SP2 hervor
    By sjuerges in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 17-08-06, 12:12
  3. Neue Möglichkeiten mit SQL auf i5 / iSeries / AS400
    By Fondue in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 28-04-06, 19:40
  4. AS/400 und SQL Server 2000
    By rcauchy in forum NEWSboard Windows
    Antworten: 9
    Letzter Beitrag: 06-06-05, 10:24
  5. Datenzugriff von PC auf AS/400 Daten
    By Olli1 in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 25-06-04, 14:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •