In den letzten Tagen habe ich mich etwas um das Aufräumen im Code gekümmert. Besonders die Ladezeit und Namenskonventionen habe ich mir angeschaut.
Ursprünglich dauerte das Laden von 5000 Artikel ungefähr 1 Tag und 16 Stunde (also 40 Stunden). Das klingt nach ziemlich viel,wenn man jedoch berücksichtigt was, dann relativiert sich dies.
Momentan laufen mit:
- Import von 40 Trainingsdokumenten (zum Erzeugen der Statistik für die Klassifizierung)
- die Struktur des Textes wird analysiert (Wort und Satzerkennung, inkl. Layer für die Dokumententitel, Ablage in Datenbankmodell)
- 5 verschiedene Klassifizierungsalgorithmen die 5000 Artikel klassifizieren
- Kookurrenzen für Sätze und Wörter werden gebildet (für ca. 260.000 Wörter).
Das war aber mir auch noch zu viel. Daher habe ich die Indizies aufgeräumt, wie fehlende ergänzt, doppelt entrümpelt und einige zusammengelegt.
Das hat etwas Erfolg bei der Laufzeit gebracht, besonders jedoch im Größe der Datenbank.
Den richtigen Kick hat jedoch die Überarbeitung der Table Valued Functions (TVF) gebracht.
Hier habe ich die meisten auf inline TVF umgestellt,die aus Performancesicht etwas schneller sind. Das hat die Gesamtladezeit akutell auf 9:30 h reduziert.
Damit kann ich jetzt über Nacht jeweils komplette Builds bauen. Das erhöht die Testtiefe doch deutlich.