piektdiena, 2011. gada 28. janvāris

Piemērs: Vaicājums, izmantojot analītisko funkciju Row_Number

Man pašam ļoti patīk aprakstītās problēmas risinājums un, iespējams, vēl kādam noderēs. Rakstā aprakstīta situācija, vajadzīgais efekts un kā tas panākts.

trešdiena, 2011. gada 26. janvāris

Divas bildes

Ārpus konteksta :).

DDL Trigeris notikumu reģistrēšanai

Rakstā DDL (Data Definition Language) trigera piemērs. Ideja- datu bāzē tiek izveidota tabula, kurā tiek reģistrēti DDL notikumi- laiks, lietotājs un XML dati ar notikuma aprakstu. Iespēja pieejama sākot ar SQL Server 2005. Kopsavilkuma raksts: Trigeri SQL Server

Datu integritāte SQL Server

No grāmatas izrāvums (šīs) domu sakārtošanai par domēna integritāti, entītijas integritāti un referenciālo integritāti (Referential integrity).

ceturtdiena, 2011. gada 20. janvāris

Ierobežojumi (Constraints)

Aprakstīti ierobežojumi (constraints) SQL Server datu bāzēs- primārās atslēgas, ārējās atslēgas, unikalitātes, pārbaudes (check), noklusētās vērtības, Null vērtības. Ierobežojumi tiek izmantoti datu integritātes nodrošināšanai.

trešdiena, 2011. gada 19. janvāris

otrdiena, 2011. gada 18. janvāris

CV lai apskatītu dalītos (partitioned) objektus

Izveidoju skriptu, kas izvada visus dalītos (partitioned) datu bāzes objektus- tabulas, skatus un attiecīgos indeksus. Tabula vai materializēts skats var arī nebūt dalīts, bet kāds indekss uz tā vienalga var būt dalīts.

svētdiena, 2011. gada 16. janvāris

Lietotāja definēti T-SQL datu tipi

Ir divu veidu lietotāja definēti tipi- Transact SQL un CLR. Šeit tikai par Transact SQL lietotāja definētiem tipiem.

piektdiena, 2011. gada 14. janvāris

Indeksu apkope II- ņem vērā dalītus (partitioned) indeksus

Raksta "Indeksu apkope" beigās tika dots "universāls" indeksu pārbūves skripts. Šajā rakstā šis skripts uzlabots, lai tiktu ņemtas vērā indeksa daļas (partitions), shēmas un specifiskus objektu nosaukumus.

Dalīti (partitioned) indeksi

Šajā rakstā ir vienuviet apvienotas tās atšķirības, kas būtu jāņem vērā gadījumos, kad datu bāzē tiek veidotas dalītās (partitioned) tabulas un indeksi. Norādītas lietas, kas nav pieminētas rakstu sērijā- Indeksi (pamati). Rakstu var uztvert kā turpinājumu rakstam Tabulu horizontālā dalīšana (Partitioned Tables).

otrdiena, 2011. gada 11. janvāris

Tabulu horizontālā dalīšana (Partitioned Tables)

Raksts par dalītām tabulām- kad to būtu vērts darīt (vismaz- apsvērt darīt), daži trūkumi vai nianses pirms vispār domāt par tabulu dalīšanu, arī mazliet par attīstības vēsturi. Galvenokārt visa informācija rakstā ir ņemta no šejienes.

piektdiena, 2011. gada 7. janvāris

Kā izlikties par citu lietotāju (impersonation)

Vajadzība izlikties par citu lietotāju man visbiežāk rodas tad, ja ir jātestē kāds vaicājums/procedūra/neznu_kas_vēl, kas strādā savādāk atkarībā no tā, kas izpilda attiecīgo komandu. Piemēram, ja vaicājumā where daļā ir izmantota SQL Server funkcija is_member vai, piemēram, kāda no daudzajām lietotāja vārda iegūšanas funkcijām (SQL Server iebūvētās funkcijas).

SSMS: Rezultātu kopēšana

Pavisam īsi- kā "skaisti" nokopēt vaicājuma atgrieztos rezultātus ar visiem kolonnu nosaukumiem SSMS vidē.

trešdiena, 2011. gada 5. janvāris

Skripta izpilde visās datu bāzēs uz servera

Netīšām uzskrēju virsū vienai nedokumentētai procedūrai, kas man izskatās visai noderīga- sp_msForEachDB. Ar tās palīdzību var izpildīt vaicājumu visām datu bāzēm uz servera. Turpat blakus arī atradās otra nedokumentētā procedūra- sp_msForEachTable.

DMV trūkstošo indeksu iegūšanai

Vēl viens raksts par indeksiem un informāciju, ko par tiem var uzzināt izmantojot DMV (Dynamic Management Views and functions). Šoreiz- par indeksiem, kas potenciāli varētu uzlabot SQL Server ātrdarbību.

pirmdiena, 2011. gada 3. janvāris

UNION un UNION ALL ātrdarbības salīdzinājums

Union tiek izmantots, lai no divām vai vairākām rezultātu kopām iegūtu to apvienojumu. Norādot Union (bez All) no rezultāta tiek izslēgtas tās rindas, kas atkārtojas vairākas reizes.