Announcement

Collapse
No announcement yet.

Insert extrem langsam

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Insert extrem langsam

    Hallo Zusammen,
    mein Insert ist extrem langsam, wenn ich ca. 12000 Datensaetze in der Tabelle habe.

    Hier das Insert
    INSERT INTO t_event_calendar
    (c_id, d_start, d_ende, n_typ_id, n_optionen, n_status, n_label_farbe, c_ort, n_recurrence_idx, c_text, n_group_id, n_internal_event_type, n_reminder_min, d_reminder_date, n_recurrence_info, m_keys)
    VALUES
    (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

    Dieses Insert wird 60 mal ausgeführt und benötigt bei einer leeren Tabelle 1 Sekunde und bei einer mit 12000 Datensaetze 1 Minute.

    Hier die Tabellen Info
    MyISAM
    Avg. Row Length 179Byte
    Data Length 2,16MB
    Index Length 688KB
    row_format=FIXED

    PRIMARY KEY (`c_id`),
    KEY `IDX_RESOURCE_GROUP` (`n_resource_id`,`n_group_id`),
    KEY `IDX_START_RESOURCE` (`d_start`,`n_resource_id`)

    c_id ist varchar(45)

    Zur Zeit wird jedes Insert für sich ausgeführt und nicht alle als ein Statement.


    Danke für Eure Hilfe
    Thomas

  • #2
    Wieviel Speicher darf der MySQL-Server sich genehmigen? Je nach installation ist er sehr sparsam und lässst den Speicher "vergammeln". Ebenfalls sollte eine Virenscanner die DB-Dateien nicht bei jedem Zugriff untersuchen.

    Einfach Performanceverbesserung erreichst du auch mittels preparing der Statements. Ansonsten muß für jeden Insert der Abfrageplan neu erstellt werden.

    Comment


    • #3
      Einfach Performanceverbesserung erreichst du auch mittels preparing der Statements.
      Der OP verwendet ein PreparedStatement.

      Dim
      Zitat Tom Kyte:
      I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

      Comment


      • #4
        Also das sind die Werte
        query_cache_size=16M
        table_cache=256
        tmp_table_size=103M
        thread_cache_size=8
        max_allowed_packet=512M
        myisam_max_sort_file_size=100G
        myisam_sort_buffer_size=205M
        key_buffer_size=175M
        read_buffer_size=64K
        read_rnd_buffer_size=256K
        sort_buffer_size=256K

        Der Virenscanner hat damit nichts zu tun.
        An preparing kann es auch nicht liegen, denn dann würde auch bei eine leere DB lange dauern. Wobei ich meine, dass das preparing ausgeführt wird.

        Besten Dank
        Thomas

        Comment


        • #5
          Originally posted by Thomas Juentgen View Post
          Also das sind die Werte
          query_cache_size=16M
          table_cache=256
          tmp_table_size=103M
          thread_cache_size=8
          max_allowed_packet=512M
          myisam_max_sort_file_size=100G
          myisam_sort_buffer_size=205M
          key_buffer_size=175M
          read_buffer_size=64K
          read_rnd_buffer_size=256K
          sort_buffer_size=256K

          Der Virenscanner hat damit nichts zu tun.
          An preparing kann es auch nicht liegen, denn dann würde auch bei eine leere DB lange dauern. Wobei ich meine, dass das preparing ausgeführt wird.

          Besten Dank
          Thomas
          Hallo,

          Läuft da noch ein Trigger auf dieser Tabelle mit, welcher was auch immer macht ?

          Comment


          • #6
            Nicht der Gleichen und der Fehler liegt nicht in der DB sondern einen Layer drüber
            Ich habe mal das ganz in C++ umgestrickt, da ich eine Komponente genutzt habe die eigentlich viel Dinge macht und unter anderem den Record in die Db schreibt.
            Und nachdem ich dann eine andere Komponente genutzt habe und mir die das Statement selber zusammen gebastelt habe läuft das ganze nun eine knappe Sekunde.

            Ich hatte mich auch schon gewundert, da ich andere Tabellen haben die größer sind und das Insert wesentlcih schneller ging und da lagen auch noch Trigger drauf.

            Trotzdem Danke
            Thomas

            Comment

            Working...
            X