|
<< Click to Display Table of Contents >> Navigation: PASLOG - Loggen > PASLOG - SQL Datenstruktur |
Die Datenbank besteht aus einer Tabelle, die partitioniert ist über den Zeitstempel ("MsgClientTs") der LOG-Meldungen.
Der Aufbau im Client:
static string CreateDbTableName(string tableName)
{
return
"CREATE TABLE IF NOT EXISTS " + tableName + " (" +
"msgText text," +
"msgLevel int not null," +
"msgLevelInfo text," +
"msgClientNr int," +
"msgClientTS timestamptz not null," +
"msgAppNr int," +
"msgImportTS timestamptz not null," +
"msgData jsonb," +
"msgTopic text," +
"msgSubTopic text," +
"msgIntVal bigint," +
"appStackName text," +
"appLocation text," +
"appName text," +
"appProcessID int," +
"appThreadName text," +
"userName text," +
"userSessionID text," +
"userConnectionID text," +
"customerID text," +
"msgDebug boolean not null" +
")";
}
Und hier der Code zur Erzeugung der Tabellen (damit sind die rel. Strukturen klar):
var sqlCreateMasterTable = CreateDbTableName("paslog") + " PARTITION BY RANGE (msgClientTS);";
var cmd = new NpgsqlCommand(
sqlCreateMasterTable,
connection,
transaction);
var sqlCreateMasterTableIndex = "CREATE INDEX IF NOT EXISTS insertidxx ON PASLOG (msgClientTS); ";
var indexCreation2 = new NpgsqlCommand(
sqlCreateMasterTableIndex,
connection,
transaction);