Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
799 Beiträge
 
Delphi 10.4 Sydney
 
#1

DB Tabelle beschleunigen

  Alt 12. Jul 2019, 14:43
Datenbank: MySQL • Version: 5 • Zugriff über: UniDac
Hallo Zusammen,

ich habe eine Tabelle mit Auftragsdaten, in der ich historische Daten speichere. In dieser Tabelle sind über 2,5 Mio Datensätze. AUs diesem Grund sind die Abfragen sehr langsam (1,6-2,1 sek). Ich habe keine Idee, ob / wie ich die Tabelle schneller bekomme.
So ist die Tabelle aufgebaut:
Delphi-Quellcode:
CREATE TABLE `nedcom`.`as400archiev` (
  `WAAUNR` varchar(20) NOT NULL COMMENT 'FA-Nr',
  `WAAUPO` varchar(20) NOT NULL COMMENT 'FA-Zusatz',
  `WATENR` varchar(13) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL COMMENT 'Artikel-Nr',
  `TEBEZ1` varchar(26) NOT NULL COMMENT 'Artikelbezeichnung 1',
  `TEBEZ2` varchar(26) NOT NULL COMMENT 'Artikelbezeichnung 2',
  `WAFEMG` int(11) DEFAULT NULL COMMENT 'FA-Sollmenge',
  `WAGFMG` int(10) unsigned zerofill DEFAULT NULL COMMENT 'FA-Istmenge',
  `WAWEDA` int(11) DEFAULT NULL COMMENT 'FA-Wareneingangsmenge',
  `WASTAT` int(10) unsigned DEFAULT NULL COMMENT 'FA-Status',
  `OAAGNR` int(11) NOT NULL COMMENT 'AG-Nr',
  `OAAGBZ` char(30) DEFAULT NULL COMMENT 'AG-Bezeichnung',
  `OARMMG` int(11) DEFAULT NULL COMMENT 'AG-Istmenge',
  `OARMDA` date DEFAULT '0000-00-00' COMMENT 'AG-Rückmeldedatum',
  `OATLKZ` varchar(1) DEFAULT NULL COMMENT 'AG-Rückmeldung',
  `OAMANR` varchar(8) DEFAULT NULL COMMENT 'Arbeitsplatz',
  `MAMABZ` varchar(26) DEFAULT NULL COMMENT 'Arbeitsplatzbezeichnung',
  `TGDATE` varchar(10) DEFAULT NULL COMMENT 'Tagesdatum - 6Tage',
  `OASTTE` int(11) DEFAULT NULL COMMENT 'AG-Datum',
  `lgzgda` datetime DEFAULT '0000-00-00 00:00:00' COMMENT 'Lagerzugangsdatum',
  `kritfa` double DEFAULT '0' COMMENT 'Kritischer Auftrag',
  `thslda` date DEFAULT '0000-00-00' COMMENT 'Theoretisches Soll-Datum Rückwärtsberechnung',
  `aglfzt` varchar(20) DEFAULT '00:00:00' COMMENT 'Laufzeit des AG''s',
  `WASIBS` int(11) DEFAULT '0' COMMENT 'Sicherheitsbestand',
  `WAGEWI` double DEFAULT '0' COMMENT 'Gewicht Netto',
  `WAGWMB` varchar(5) DEFAULT '0' COMMENT 'Gewichtsbasis',
  `WATLKZ` varchar(2) DEFAULT '0' COMMENT 'Auftragskennzeichnung',
  `WARSMG` int(11) DEFAULT '0' COMMENT 'Restmenge',
  `OAUEZT` double DEFAULT NULL,
  `OAMAZT` double DEFAULT NULL,
  `TETART` varchar(45) DEFAULT NULL,
  `TETEFA` varchar(45) DEFAULT NULL,
  `TEPRKA` varchar(45) DEFAULT NULL,
  `OARUZT` double DEFAULT NULL,
  `OASTZT` double NOT NULL,
  `ZBASIS` varchar(5) NOT NULL COMMENT 'Kennzeichen, wie die Dauer mit der Stückzeit und der Menge berechnet werden muss',
  `RestDauer` varchar(20) NOT NULL DEFAULT '00:00:00' COMMENT 'Wie lange der FA von diesem AG noch benötigt, bis FA fertig',
  `EPress` date NOT NULL DEFAULT '0000-00-00' COMMENT 'Einpressterminierung',
  `EPressProz` double NOT NULL DEFAULT '0' COMMENT 'Wieviel Prozent der benötigten AGDauer ist noch verfügbar',
  `SollMenge` int(11) DEFAULT '0' COMMENT 'Geplante Soll-Menge des AG''s',
  `plan_date` date DEFAULT NULL COMMENT 'Für wann ist der FA geplant (korreliert mit dem Datum Start aus EilFa)',
  `frozen` varchar(5) DEFAULT '0' COMMENT 'Ist der Auftrag in dem eingefrorenenen Bereich',
  `sequence` int(10) unsigned DEFAULT '999' COMMENT 'Reihenfolgeposition',
  `rfehler` varchar(5) DEFAULT '0' COMMENT 'Rückmeldefehler in der AS400 ',
  `mchange` varchar(5) DEFAULT '0' COMMENT 'Maschine anders als in AS400 ',
  `emuster` varchar(5) DEFAULT '0' COMMENT 'Ist ein Erstmusterauftrag ',
  `draht` varchar(5) DEFAULT '0' COMMENT 'Ist Draht verfügbar. Ja,Nein ',
  `werkz` varchar(5) DEFAULT '0' COMMENT 'Ist Werkzeug verfügbar. Ja,Nein ',
  `scheiben` varchar(5) DEFAULT '0' COMMENT 'Sind Scheiben verfügbar. Ja,Nein ',
  PRIMARY KEY (`WAAUNR`,`WAAUPO`,`OAAGNR`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
Hat jemand eine Idee?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat