Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sql monitoring i Sql 'change tracking'

[es] :: .NET :: .NET Desktop razvoj :: Sql monitoring i Sql 'change tracking'

[ Pregleda: 1154 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.adsl-a-7.sezampro.rs.



+3 Profil

icon Sql monitoring i Sql 'change tracking'19.02.2013. u 12:43 - pre 84 meseci
Interesuje me da li neko ima iskustva (ili ima predlog kako uraditi) u vezi monitoring-a i 'change tracking'-a sql baze ?
Radim u c#, radi se o jednoj desktop aplikaciji.

Treba mi mehanizam (u c#-u) za:
- monitoring izmjena u sql bazi, i
- change tracking.

Da pokusam da budem precizniji:
- N korisnika (na N racunara) koristi neku aplikaciju,
- baza podataka je na domen kontroleru (na kom postoji sql server 2008),
- kada korisnik M, recimo, promijeni podatke nekom entitetu (iz aplikacije), zahtjev je da:
- svi ostali korisnici dobiju poruku da je M izmijenio podatke, plus
- da dobiju informaciju koji atribut je izmijenio (polje 1, ili polje 2, u prevodu: kolonu 1, ili kolonu 2, ...).

Ako sam ja dobro razjasnio (sebi) 'stvari', trebaju mi mehanizmi da:
- detektujem da se desila promjena u bazi (notification), i
- detektujem koja polja (kolone u tabeli) su izmijenjena (change tracking).

Notifikaciju (da je tako nazovem) sam, do sada, rjesavao klasom SqlDependency (uglavnom jednostavniji primjeri, tipa: online prikaz novounesenih rekorda u bazu, recimo).
Primjenom ovog mehanizma ne moze se dobiti informacija STA je promijenjeno (i koje KOLONE su promijenile vrijednost).
Takodje, postoje brojna ogranicenja (recimo, kod kreiranja upita i slicno). Plus sam procitao da je od SQL servera 2008 ovaj koncept 'deprected' (i da ga treba izbjegavati zbog kompatibilnosti sa buducim verzijama).

Dalje, Change Tracking mehanizam je dobro opisan na nivou , da tako kazem, baze: postoje primjeri pomocu kojih se moze shvatiti citav scenario: od omogucavanja samog mehanizma change tracking-a, pa do dohvata promijenjenih podataka (kako reda, tako i kolona cije su se vrijednosti promijenile). Ono sto ne mogu da pronadjem je: KAKO pozvati ovaj mehanizam (change tracking-a) iz aplikacije, to jest, iz c#-a ?

Da skratim: treba mi prijedlog kako realizovati (da se nasalim 'dvaUjedan'): notifikaciju (o promjeni u sql bazi) plus dohvat (SAMO) promijenjenih vrijednosti (naravno, uz uslov da je prethodno omogucen 'change tracking' mehanizam na nivou baze i same tabele).

Hvala unaprijed ...
P.S. Nadam se da nisam pogrijesio sto sam i ovo pitanje postavio u ovaj podforum (alternativa je bio podforum za baze podataka) ?
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1004

Sajt: www.its.edu.rs


+36 Profil

icon Re: Sql monitoring i Sql 'change tracking'19.02.2013. u 20:02 - pre 84 meseci
Za monitoring izmena bih napravio neki Event koji bi sve subscribe-re obavestavao o promenama
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 360



+15 Profil

icon Re: Sql monitoring i Sql 'change tracking'21.02.2013. u 08:45 - pre 84 meseci
Evo ovde je dosta dobro opisano:

http://msdn.microsoft.com/en-us/library/bb933874.aspx#Obtain

Edit: iz c# pozivas kao redovan SELECT, kako god inace to radis.
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.adsl-a-1.sezampro.rs.



+3 Profil

icon Re: Sql monitoring i Sql 'change tracking'21.02.2013. u 08:58 - pre 84 meseci
Citat:
ravni: Evo ovde je dosta dobro opisano:

http://msdn.microsoft.com/en-us/library/bb933874.aspx#Obtain

Edit: iz c# pozivas kao redovan SELECT, kako god inace to radis.


Ja sam uradio sledece (na osnovu ove 'mustre': http://www.mssqltips.com/sqlserverti...server-2008/, a slicno je rjesenju koje je dato i na linkovima, koje si ti predlozio):

- odustao sam od realtime monitoringa - idem na polling baze (recimo na minut - i u praksi djeluje sasvim ok). Zasto sam odustao:
- SqlNotify servisi nece biti podrzani od 2008-e pa na dalje,
- SqlDependency se vezuje za jednu SqlKomandu i ima dosta ogranicenja, narocito po pitanju generisanja samog query-ja (upita),
- SqlDependency ne dajej informaciju koji red i koja polja su promijenjena.

- u pollingu pozivam jednu stored proceduru, koja vraca 'change tracking' podatke (kako napisati stored proceduru, kao i sva ostala uputstva, su data na 'mustri'),

- iz stored procedure (zahvaljujuci 'change tracking'-u) dobijam sledece podatke:
- tip sql operacije (insert, delete, update)
- red(ovi) koji je(su) izmijenjen(i),
- koja kolona(e) je izmijenjena(e),

- te podatke ucitavam u DataTable i dalje ih koristim prema logici svoje aplikacije ...

Ima, jasno, jos posla, ali bih rekao da je to dobar pristup ...
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Sql monitoring i Sql 'change tracking'

[ Pregleda: 1154 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.