Verificare istoric backup pentru o anumita baza

Pentru cazurile in care avem nevoie sa vedem istoricul de backup pentru o anumita baza de date, am facut o procedura care returneaza acest lucru.

Procedura primeste doi parametrii:
@BazaDeDate
@NrZileIstoric

In functie de acesti parametrii procedura returneaza istoricul de backupuri, incepand de astazi si pana cu @NrZileIstoric in urma, pentru baza primita drept parametru @BazaDeDate.

(Zilele sunt calculate ca numar de 24 de ore)

Ca si informatii suplimentare procedura returneaza:
– data la care a inceput fiecare backup
– data la care s-a terminat fiecare backup
– daca backupul e pus sa expire sau nu (in cazul in care expira apare data expirarii)
– tipul backupului facut: Full, Differential, Log
– dimensiunea backupului
– locul in care a fost facut: intr-un backup device sau pe disk (daca a fost facut pe disk este afisata calea de pe disk)

Procedura nu trebuie pusa neaparat pe baza la care se doreste verificat istoricul de backup, ci poate fi pusa pe orice baza de pe serverul pe care se afla baza la care se doreste verificat istoricul de backup.

[mai mult...]

Monitorizare blocaje pe serverul de sql

Se intampla uneori,  aparent fara motiv, ca utilizatorii sa se planga ca le merg greu aplicatiile, sau ca asteapta mult sa se ruleze ceva in aplicatie.
De multe ori acest lucru se intampla din cauza aparitiei blocajelor pe server.
Pentru aceste situatii am facut o procedura care , la rulare, returneaza toate sesiunile ce genereaza blocaje sau care sunt blocate de alte sesiuni (asta in cazul in care exista blocaje pe server).
In cazul in care sunt blocaje procedura returneaza:
data,
baza pe care este blocajul,
userul si numele statiei care ruleaza sesiunea ce blocheaza,
userul si numele statiei ce ruleaza sesiunea ce este blocata,
scriptul rulat de userul blocat,
scriptul rulat de userul ce blocheaza,
precum si numele aplicatiilor implicate in blocaj (asta daca scripturile sunt rulate in cadrul unei aplicatii, si nu direct din sql).
In cazul in care nu exista blocaje la momentul rularii, procedura nu va intoarce, evident,  decat capul de tabel.
[mai mult...]

Orar rulare joburi pe sql server

In cazul in care avem nevoie de o situatie a tuturor joburilor de pe un server de sql, in care sa vedem cum si cand sunt programate sa ruleze, am facut o procedura care intoarce un astfel de raport.

Coloanele din raport sunt:

JobName – reprezinta numele jobului de pe serverul de sql respectiv

ScheduleName – reprezinta numele programarii jobului (o programare de job se poate folosi la mai multe joburi)

IsEnabled – este statusul jobului, daca este activ sau nu

ScheduleType – ne arata daca jobul a fost programat sa ruleze doar o data la o anumita data sau daca este recurent

Ocurence – poate fi zilnica, saptamanala, lunara, anuala sau one time

Recurence – cand anume este programat sa ruleze (spre ex, daca ocurenta e spaptamanala, atunci recurenta imi spune in ce zile ale saptamanii ruleaza)

Frequency – la ce ora sau la ce interval orar ruleaza

ScheduleUsageSartDate – cand a rulat prima oara

ScheduleUsageEndDate – data programarii ultimei rulari a jobului (daca este programat pe termen nelimitat apare 9999-12-31)

ScheduleCreatedOn – cand a fost creata programarea rularii jobului

ScheduleLastModifiedOn – cand a fost modificata ultima oara programarea rularii jobului

[mai mult...]

Cautare string intre doi delimitatori

Am fost nevoit uneori sa extrag din coloana unei tabele (de tip varchar) toate caracterele delimitate de un anumit separator. (cel mai des mi s-a intamplat la importul in sql de csv-uri)

Pentru aceasta am creat o functie care primeste parametrii:

– un strig (sau o coloana de tip varchar dintr-o tabela)

– un parametru de tip varchar (care poate sa fie un caracter sau un sir de caractere) care este delimitatorul din stanga

–  un alt  parametru de tip varchar (care poate sa fie un caracter sau un sir de caractere) care este delimitatorul din dreapta

Functia intoarce toate stringurile gasite intre cele doua delimitatoare (parametrii 2 si 3)

– functia mai are si doi parametrii suplimentari in care se poate seta comportamentul functiei in cazul in care nu sunt gasite stringurile delimitatoare

@StringNu –

daca se pune null , si delimitatorul stanga exista,  dar nu exista delimitatorul dreapta, atunci functia returneaza de la delimitatorul gasit pana la sfarsitul stringului.

daca se pune null , si delimitatorul stanga nu exista, dar exista delimitatorul dreapta, atunci functia returneaza de la inceputul stringului pana la delimitatorul dreapta.

daca se pune altceva decat null la acest prametru, este afisat acel altceva in cazul in care nu exista delimitatorul stanga, sau dreapta ori ambele.

@Off –

in mod normal acest parametru se pune cu valoarea 0

in mod special se pune cu alta valoare decat cea 0 DOAR in cazul in care , daca exista si delimitatorul stanga si cel dreapta , se vrea afisarea si inceputului stringului (aflat la stanga de delimitatorul stanga) daca stringul cautat este gasit de la pozitia @Off in sus

Exemplu (ca sa fie mai clar)

Am stringul urmator:

‘dadadadadaaasu#dfffgggg!gdfhdhh4555’

select dbo.fn_BD_StringIntreDelimitatori ( ‘dadadadadaaasu#dfffgggg!gdfhdhh4555’, ‘#’, ‘!’ , 0, null)    intoarce rezultatul  dfffgggg

select dbo.fn_BD_StringIntreDelimitatori ( ‘dadadadadaaasu#dfffgggg!gdfhdhh4555’, ‘#’, ‘!’ , 15, null)    intoarce rezultatul  dfffgggg

DAR

select dbo.fn_BD_StringIntreDelimitatori ( ‘dadadadadaaasu#dfffgggg!gdfhdhh4555’, ‘#’, ‘!’ , 16, null) intoarce rezultatul  dadadadadaaasu#dfffgggg

[mai mult...]

Cautare a n-a aparitie intr-un string

M-am intalnit deseori cu problema de a cauta intr-un string sau o coloana de tip varchar a doua sau a treia recurenta a unui alt string.

Pentru aceasta situatie am facut o functie care cauta intr-un string (sau o coloana de tip varchar dintr-o tabela) a n-a apartie a unui sir de caractere.

Functia are 3 parametrii:

– un parametru de tip varchar ce reprezinta stringul cautat

– un parametru de tip varchar ce reprezinta stringul (sau coloana din tabela) in care se face cautarea

– un parametru de tip int ce reprezinta a cata apartiei a primului parametru in cel de-al doilea parametru este cautata

[mai mult...]

Cautare numere lipsa in coloana

Avem nevoie uneori sa gasim valorile lipsa (sau plaja de valori lipsa dintr-o coloana de tip integer)

Pt aceasta situatie am creat un script care parcurge o coloana de tip INTEGER si intoarce valorile lipsa din aceasta coloana , mai exact intoarce, pt fiecare serie de numere lipsa, numarul de start  al seriei lipsa, numarul de sfarsit al seriei lipsa si lungimea seriei care lipseste.

In scriptul de mai jos trebuie doar sa inlocuiti NUMELE TABELEI si NUMELE COLOANEI din tabela respectiva.

Cele doua locuri in care se fac inlocuirile sunt marcate cu comentarii pt a fi vizibile.

[mai mult...]