All93rounder
Benutzer
- Beiträge
- 6
Moin Moin,
ich stehe wohl gerade etwas neben mir und finde keine zufriedenstellende Lösung bzw. erhoffe mir nun ihr könnt mir weiter helfen.
Problemstellung:
Ich möchte eine Datenbank aufbauen in der ich eine überwachung meies Rechners ermöglich, also Prozessorauslastunf, Memorybelegung, aktive Prozesse... Das Datenbankschema dazu habe ich bereits, siehe unten. Nun möchte ich natürlich, dass mein PowerShellskript die Werte überträgt...
Gruß Chris
P.S. Gibt es hier keine Spoiler???
drop database if exists abc;
create database abc;
use abc;
-- ######################################## --
create table UserList(
userID int primary key auto_increment,
userName varchar(50) unique
);
-- ######################################## --
create table Summary_Performance(
TransID int primary key auto_increment,
UserID int,
TransTime timestamp,
foreign key (UserID) references UserList(userID)
on update cascade
);
delimiter $$
create trigger iSummary_Performance
before update
on Summary_Performance
for each row
begin
DECLARE identUserName varchar(50) default '';
delete from TransactionList
Where TransTime in (
select max(TransTime)
From TransactionList)
and 4 >= (
select count(*)
From TransactionList);
set identUserName = ('abc'); -- SELECT CURRENT_USER()
if identUserName not in (select userID From UserList Where userName = identUserName) then
insert into userList(userName) values (identUserName);
end if;
set new.UserID = (select userID From UserList Where userID = identUserName);
end $$
delimiter ;
-- ######################################## --
create table Typ(
TypNr tinyint primary key auto_increment,
TypName varchar(50)
);
insert into Typ values (0,'Prozessor');
insert into Typ values (2,'Memory');
insert into Typ values (3,'Programme');
-- ######################################## --
create table Performance(
TransID int,
TypNr tinyint not null,
Position int not null,
Auslastung decimal(4,1) not null,
foreign key (TransID) references Summary_Performance(TransID)
on update cascade,
foreign key (TypNr) references Typ(TypNr)
on update cascade
);
delimiter $$
create trigger iiiiiiiiTransactionList
before update
on Performance
for each row
begin
delete from TransactionList
Where TransTime in (
select max(TransTime)
From TransactionList);
end $$
delimiter ;
-- ######################################## --
-- ######################################## --
-- ######################################## --
create view vIn_Performance
as
select TransID, TypNr, Position, Auslastung
From Performance;
create view vOut_Performance
as
select TransID
From Summary_Performance;
-- ######################################## --
drop user OpPerformance; -- xxx
create user OpPerformance identified by 'abc';
grant select, insert on vOut_Performance to OpPerformance;
grant select, insert on vIn_Performance to OpPerformance;
ich stehe wohl gerade etwas neben mir und finde keine zufriedenstellende Lösung bzw. erhoffe mir nun ihr könnt mir weiter helfen.
Problemstellung:
Ich möchte eine Datenbank aufbauen in der ich eine überwachung meies Rechners ermöglich, also Prozessorauslastunf, Memorybelegung, aktive Prozesse... Das Datenbankschema dazu habe ich bereits, siehe unten. Nun möchte ich natürlich, dass mein PowerShellskript die Werte überträgt...
- Zuerst dochte ich an alle Werte werden aufeinmal übertragen, dann funkt jedoch nicht. Da ich nicht wüsste wie ich SQL so flexible gestallte, dass es bei einer übermittlung alle Werte annimmt wie z.B. einmal 2 Core daten, dann 8-Core daten oder 4-Core daten usw...
- Nun habe ich das Datenbankschema angepasst und übermittel nur einzelne Datensätze also für einen 2core system zwei übermittlungen und für ein 8core system halt 8übermittlungen usw... (nur bezogen nun auf Prozessorleistung pro Memoryriegel/Prozesse kommen weitere übermittlungen hinzu)
- Nun habe ich das Problem dass ich für jede neue Übermittlung eine neue TransID generiere... Das ist nur nicht sinn der Sache, da ich unter einer ID alle dazugehörigen Daten finden möchte.
- Lösungsweg, ich starte eine Transaction und lasse mir eine TransID zuweien und nutze diese weiterhin...
- Nun habe ich das Problem dass ich für jede neue Übermittlung eine neue TransID generiere... Das ist nur nicht sinn der Sache, da ich unter einer ID alle dazugehörigen Daten finden möchte.
Gruß Chris
P.S. Gibt es hier keine Spoiler???
![img2015022211ugib6oy3r1.jpg img2015022211ugib6oy3r1.jpg](https://www.datenbankforum.com/data/attachments/0/527-e6de53443a6a388a21300fb349764cbe.jpg?hash=5t5TRDpqOI)
drop database if exists abc;
create database abc;
use abc;
-- ######################################## --
create table UserList(
userID int primary key auto_increment,
userName varchar(50) unique
);
-- ######################################## --
create table Summary_Performance(
TransID int primary key auto_increment,
UserID int,
TransTime timestamp,
foreign key (UserID) references UserList(userID)
on update cascade
);
delimiter $$
create trigger iSummary_Performance
before update
on Summary_Performance
for each row
begin
DECLARE identUserName varchar(50) default '';
delete from TransactionList
Where TransTime in (
select max(TransTime)
From TransactionList)
and 4 >= (
select count(*)
From TransactionList);
set identUserName = ('abc'); -- SELECT CURRENT_USER()
if identUserName not in (select userID From UserList Where userName = identUserName) then
insert into userList(userName) values (identUserName);
end if;
set new.UserID = (select userID From UserList Where userID = identUserName);
end $$
delimiter ;
-- ######################################## --
create table Typ(
TypNr tinyint primary key auto_increment,
TypName varchar(50)
);
insert into Typ values (0,'Prozessor');
insert into Typ values (2,'Memory');
insert into Typ values (3,'Programme');
-- ######################################## --
create table Performance(
TransID int,
TypNr tinyint not null,
Position int not null,
Auslastung decimal(4,1) not null,
foreign key (TransID) references Summary_Performance(TransID)
on update cascade,
foreign key (TypNr) references Typ(TypNr)
on update cascade
);
delimiter $$
create trigger iiiiiiiiTransactionList
before update
on Performance
for each row
begin
delete from TransactionList
Where TransTime in (
select max(TransTime)
From TransactionList);
end $$
delimiter ;
-- ######################################## --
-- ######################################## --
-- ######################################## --
create view vIn_Performance
as
select TransID, TypNr, Position, Auslastung
From Performance;
create view vOut_Performance
as
select TransID
From Summary_Performance;
-- ######################################## --
drop user OpPerformance; -- xxx
create user OpPerformance identified by 'abc';
grant select, insert on vOut_Performance to OpPerformance;
grant select, insert on vIn_Performance to OpPerformance;