piektdiena, 2011. gada 30. decembris

SQL Server audita (Log) faila apskate

SQL Server reģistrē notikumus un kļūdas un notikumus audita žurnālā. Šajā rakstā mazliet vairāk par to, kā šo informāciju apskatīt (T-SQL un no SSMS Log File Viewer).

trešdiena, 2011. gada 14. decembris

Procesa apturēšana uz laiku (WAITFOR)

Vēlējos patestēt konkurentu lietotāju pieslēgšanos un darbu ar datu bāzi- tam vajadzēja, lai procedūras neizpildās vienādā ātrumā. Lai to panāktu izmantoju Waitfor un funkciju Rand(). Tālāk arī skripts.

otrdiena, 2011. gada 6. decembris

Teksta salīdzināšana, kolācijas

Pajautāja, kā salīdzināt teksta virknes tā, lai tiktu ņemti vērā lielie/mazie burti. Atbilde- izmantot kolācijas. Joprojām rakstu par šo tēmu neesmu uzrakstījis, bet ceru ka tas kādu dienu tomēr notiks.

piektdiena, 2011. gada 2. decembris

Kā uzzināt SQL Server procedūras nosaukumu?

Protams, rakstot procedūru mēs lieliski zinām, kā sauc procedūru. Bet kā izveidot kodu, kas pats atpazīst procedūru (vai funkciju, trigeri), no kuras tas tiek izsaukts?

trešdiena, 2011. gada 9. novembris

Par MS eksāmenu 70-433

Šodien nokārtoju vienu no Microsoft piedāvātajiem eksāmeniem- 70-433 TS: Microsoft SQL Server 2008, Database Development. Nedaudz par to, kā gāja.

otrdiena, 2011. gada 8. novembris

Service Broker: CLR

Šajā rakstā piemērs, kā apstrādāt rindas elementus no .NET. Manuprāt labākais no raksta ir tas, ka parādīts, cik vienkārši ir izveidot lietojumu, kas strādā ar Service Broker (SB) servisiem.

piektdiena, 2011. gada 4. novembris

Service Broker: dialoga piespiedu pārtraukšana

Līdz ar ziņojuma nosūtīšanu no viena servisa otram, tiek uzsākts dialogs starp šiem servisiem. Dialoga pārtraukšanai abos servisos ir jāizpilda komanda "End Conversation". Normālā gadījumā servisu saustarpējā saziņa šādi arī vienmēr ir jāpārtrauc. Tomēr ir gadījumi, kad šāda iespēja nepastāv.

ceturtdiena, 2011. gada 3. novembris

Service Broker: aktivizācija

SQL Server Service Broker (SB) servisi savā starpā apmainās ar ziņojumiem. Pirms apstrādes saņemtie ziņojumi tiek glabāti servisa rindā (katram SB servisam atbilst rinda). Savukārt ziņojumu apstrādes procedūra var tikt automātiski aktivizēta.

trešdiena, 2011. gada 2. novembris

Service Broker: rindu monitorings

Service Broker (SB) servisi ir visai filigrāna padarīšana. Zemāk daži vaicājumi SB procesa novērošanai un kontrolei, kā arī  pāris komentāri par tiem. [Pēdējo reizi papildināts 2012-08-10].

otrdiena, 2011. gada 1. novembris

SQL Server "TODO" saraksts

Veidojot tādu kārtīgu procedūru/funkciju kaudzi nonācu pie secinājuma: būtu vērtīgi, ja varētu piefiksēt vēl noslīpējamās lietas tajās. Respektīvi- izveidot "TODO" sarakstu, kā to var darīt, piemēram, Visual Studio.

otrdiena, 2011. gada 25. oktobris

Service Broker: asinhrons trigeris

Service Broker (SB) nodrošina ziņojumu sūtīšanu un rindas SQL Server- par to kas tas īsti ir var lasīt msdn. Šajā rakstā piemērs, kā izmantojot SB var realizēt asinhronu trigeri SQL Server datu bāzē.

piektdiena, 2011. gada 14. oktobris

SSMS: Datu bāzes tabulu pārskats

Pārskats par datu bāzes tabulām un kolonnām tajās (ar papildinformāciju). To iespējams lejupielādēt un pēc tam atvērt no SQL Server Management Studio (SSMS) vides. Turpinājumā lejupielādes adrese un lietošanas instrukcija.

trešdiena, 2011. gada 12. oktobris

SQL Server uniqueidentifier datu tips

Globāli unikāli identifikatori (bieži dēvēti kā "GUID") SQL Server datu bāzē tiek glabāti kā datu tips "uniqueidentifier". Šis datu tips ir ar plusiem un arī mīnusiem.

otrdiena, 2011. gada 11. oktobris

Identifikatori un atslēgvārdi

Par to, kas ir identifikatori un kas ir atslēgvārdi gribu uzrakstīt, jo samulsu sākot domāt par "Default" kā identifikarotu un kā atslēgvārdu. sāku prātot, kas ir kas..

Lietotāja definētas funkcijas (kas atgriež tabulu)

Iepriekš rakstīju par Iekļautām (inline) lietotāja definētām funkcijām. Arī tās atgriež tabulu, tomēr būtiska nianse ir tā, ka tādas funkcijas var strādāt tikai ar vienu vaicājumu. Pielāgojot datus pirms to atgriešanas (vairākas t-sql komandas) ir jāizmanto sarežģītāka sintakse- par to turpinājumā.

trešdiena, 2011. gada 5. oktobris

Iekļautās (inline) lietotāja definētās funkcijas

Iekļautās lietotāja definētās funkcijas kā likums atgriež tabulu. Un kā likums- sastāv tikai no viena (varbūt pat ļoti sarežģīta) vaicājuma.

trešdiena, 2011. gada 28. septembris

SQL Server XML Datu tipa metodes

Īss pārskats par SQL Server XML datu  tipa metodēm (query(), value(), exist(), modify(), nodes()). Kādi ir ieejas parametri šīm metodēm un ko ar to palīdzību var izdarīt. Neliels piemērs katrai no tām.

otrdiena, 2011. gada 27. septembris

Datu izgūšana XML formā (FOR XML klauza)

SQL Server atbalsta datu izgūšanu XML formātā. Šajā rakstā pamatlietas par FOR XML klauzu (Raw, Auto, Path un Explicit), daži veidi/piemēri, kā dabūt XML dokumentu sev vēlamā formā. Raksta nobeigumā dažas kopīgās lietas (atslēgvārdi Root, Type un Binary Base64, kā arī vārdtelpu izmantošana kopā ar For XML).

otrdiena, 2011. gada 20. septembris

DB objektu paplašinātās īpašības (Extended properties)

Paplašinātās īpašības var norādīt objektiem datu bāzē (pašai datu bāzei, tabulai, kolonai, funkcijai, utt). Šajā rakstā par to, kur var norādīt un apskatīt paplašinātās īpašības (SSMS) un arī pielietojums, kur tās liekas īpaši noderīgas.

pirmdiena, 2011. gada 19. septembris

SQL Server sql_variant datu tips

Viens ļoti interesants datu tips SQL Server ir sql_variant, kas var saglabāt dažādu datu tipu vērtības, patiesībā- jebkuras, kuru maksimālais garums ietilpst vienā datu lapā (8 KB).

ceturtdiena, 2011. gada 15. septembris

Ligzdotās (nested) transakcijas

Vārdu salikums "ligzdota transakcija" (nested transaction) man sākotnēji pamatīgi nepatika, bet, pāris dienas padomājot, sāk likties, ka nemaz nav tik traki. Rakstā par to, kāpēc uzskatu, ka ligzdotās transakcijas nav vēlamas un raksta beigās- īsumā paskaidrots risinājums, kā apstrādāt situācijas, kurām ligzdotās transakcijas šķietami (bet tikai šķietami) varētu noderēt.

otrdiena, 2011. gada 6. septembris

Vienmēr beidzam transakciju

Re ko es dabūju (man izskatās ļoti biedējoši):
"A severe error occurred on the current command.  The results, if any, should be discarded."
Jūs arī gribat?

Datu izgūšana no XML: XML vārdtelpas (namespaces)

Raksts ar piemēriem par to, kā SQL Server var izgūt datus no XML, kurā ir norādītas vārdtelpas.
Par XML vārdtelpām- w3schools, un msdn raksti: WITH XMLNAMESPACE un xquery.

[ja nekas nemainīsies, emuārā parādīsies daudz vairāk raksti par XML. Domāju- arī plašāk par vārdtelpām, pašu XML, xpath, xml datu tipu, utt .. šobrīd šis sanāk mazliet izrauts no konteksta]

pirmdiena, 2011. gada 5. septembris

SSMS: Pieslēgšana TFS 2010

Pēdējā laikā iemēģinu, kā ir strādāt ar SQL Server Management Studio (SSMS) projektiem. Šajā rakstā īsa pamācība, kā pieslēgt Team Foundation Server 2010 (TFS), lai šos projektus varētu glabāt uz Source Control servera.

ceturtdiena, 2011. gada 1. septembris

Kolonnas pārsaukšana visās tabulās

Parasti jau kolonnas pārsaukšana notiek katrā tabulā individuāli caur SSMS interfeisu vai arī ar sp_rename palīdzību. Bet, veidojot jaunu datu bāzi, kurā vēl nav izveidoti skati/funkcijas/procedūras/programmas, kas būtu atkarīgi no attiecīgā kolonnas nosaukuma, radās vajadzība mainīt kolonnas nosaukumu uzreiz vairākās tabulās.

ceturtdiena, 2011. gada 18. augusts

Tabulas datu pārvietošana (dzēšana vienā + ievietošana citā)

Pierastākais veids, kā tabulas datus izdzēst no vienas tabulas un pārvietot uz citu, ir ar 2 komandu palīdzību- (1) no sākuma datus pārkopē no vienas uz otru tabulu (Insert Into..), (2) pirmajā tabulā pārkopētos datus izdzēš (Delete..).

piektdiena, 2011. gada 12. augusts

MS SQL Server Denali

SQL Server Denali CTP 3 versija ir jau kādu laiku pieejama lejupielādei (šeit). Ja vēlme palasīt vairāk, šis raksts šķiet labs sākums.

[2012-03-22 papildināts] Denali nav vairs Denali, bet gan SQL Server 2012. Meklējiet to!

ceturtdiena, 2011. gada 11. augusts

Kā atjaunot db lietotāja pieslēguma vārdu

Piemēram, atjaunojot datu bāzi uz cita servera, var rasties situācija, ka jaunajam serverim vēl nav pievienoti tie paši lietotāji, kas bija vecajā serverī. Tādā gadījumā datu bāze tiks atjaunota, bet tajā būs datu bāzes lietotāji, kuriem nav atbilstošu pieslēgumu vārdu. Līdzīgu efektu var panākt arī izdzēšot servera lietotāju, bet atstājot datu bāzes lietotāju.

otrdiena, 2011. gada 9. augusts

Kā dzēst failu no failu grupas

Vienā failu grupā var būt vairāki faili. Ja tā, tad tabulu (indeksu) rindu dati tiek sadalīti pa failiem proporcionāli failu izmēriem (vairāk: Faili un failu grupas SQL Server). Ja kādu no failiem vēlme izdzēst..

ceturtdiena, 2011. gada 4. augusts

Resursu bloķēšana- Application Locks

Raksts, kas domāts kā piezīmju lapiņa pašam.
SQL Server automātiski rūpējās par to, lai dati tiktu atbilstoši bloķēti dažādos lietošanas scenārijos atkarībā no tā ko darām un kādā tansakcijā tas notiek. Piemēram, kamēr dati tiek lasīti, aizliegt citiem šos datus mainīt, bet atļaut tos pašus datus lasīt. Vai, kamēr dati tiek mainīti, aizliegt tos lasīt.

Bet ko darīt, ja šādu ideju vajag realizēt pilnīgi citā scenārijā? Piemēram, atļaut tikai vienam lietotājam vienā laika momentā izpildīt saglabāto procedūru.

ceturtdiena, 2011. gada 21. jūlijs

SARG optimizācija II, meklēšana char un nchar kolonnās

Šoreiz vēl viens raksts par par vaicājumu parametriem (speciālgadījums rakstā SARG optimizācija minētajam). Konteksts šim ir datu tipu char un nchar atšķirības, netiešā veidā arī kolācijas, par ko nākotnē tiek domāts uzrakstīt vairāk (pirmais netiešais tēmas ievadraksts bija Kārtošana un kolācijas).

otrdiena, 2011. gada 19. jūlijs

ceturtdiena, 2011. gada 16. jūnijs

Kārtošana un kolācijas

Mūsu alfabēts ir 'a', 'ā', 'b', 'c', 'č', ..., 'ž'. Kārtojot datus SQL Server, tas ne vienmēr tiek ņemts vērā.

trešdiena, 2011. gada 15. jūnijs

SQL Server versijas

Ja vēl nav pamanīts- nu jau kādu laiku emuārā jauna sadaļa "Saites". Iedvesmas brīdī tur saliku daļu no saitēm, kas nesakārtotākā veidā atrodas manā SQL grāmatzīmju joslā.

Šodien pievienota jauna saite, SQL Server versijas, atjauninājumu lejupielādes saites. Tur var atrast SQL Server versijas un saites uz atjauninājumu lejupielādēm.

Un vienlaicīgi apsveicos ar 100-to rakstu :).

Lietotāju pielikšanas un tiesību piešķiršanas skripta ģenerācija

Produkcijas un testa datu bāzēs lietotāji un to tiesības parasti atšķiras. Lai aktualizētu datus, testa datu bāzi mēdz laiku pa laikam atjaunot no produkcijas datu bāzes rezerves kopijas.

Šajā rakstā skripts, ar kuru var uzģenerēt skriptu lietotāju pielikšanai un tiesību piešķiršanai datu bāzē.

ceturtdiena, 2011. gada 19. maijs

MS eksāmenu cenu pieaugums

Tiem kam tas aktuāli, bet vēl nav dzirdējuši- Microsoft eksāmeniem no 1. jūlija tiks palielinātas cenas. vairāk informācijas MS saitē šeit. Par eksāmenu kārtošanas iespējām LV var palūkoties emuāra sadaļā "Saites". Cik noprotu, pieaugums cenām varētu būt kādi 30-40%.

otrdiena, 2011. gada 17. maijs

T-SQL Output klauza

Rakstā DML trigeri tika aprakstītas divas tabulas- Inserted un Deleted, kas pieejamas trigera iekšienē. Tās ļoti noder, piemēram, kad nepieciešams salīdzināt tabulā mainīto datu iepriekšējās un jaunās vērtības. Šīs tabulas ir pieejamas arī lietošanai kopā ar Output klauzu.

pirmdiena, 2011. gada 9. maijs

Kursoru deklarēšana (divos veidos)

Jau iepriekš esmu minējis, ka no kursoriem cenšos maksimāli izvairīties, tomēr ir gadījumi, kad tos var izmantot arī labu risinājumu veidošanai. Šajā rakstā pavisam vienkārša kursora (MSDN šeit un vēl šeit) izveidošana divos dažādos veidos.

trešdiena, 2011. gada 13. aprīlis

Lietotāju pārnešana uz citu serveri

Problēma: ja jāpārinstalē SQL Server, tad datu bāzes rezerves kopija lieliski palīdz saglabāt datus. bet ko darīt ar SQL lietotājiem? Kā saglabāt paroles?

Risinājumus: Lai pārnestu SQL lietotājus un paroles no vienas SQL Server instances uz citu, jāseko instrukcijām saitē. Man pat izdevās..

Šķiet īsākais raksts šajā emuārā.

otrdiena, 2011. gada 12. aprīlis

Jocīgi: Set NoCount On

Interesanta lieta: ir divas SQL Server 2005 instances, viens serveris ir pielinkots (linked server) otram. Ja lieto "Set NoCount On" un izsauc procedūru no cita servera, print ziņojumi tiek atgriezti pretējā secībā.

otrdiena, 2011. gada 5. aprīlis

DMV (Dynamic Management Views and functions)

DMV (Dynamic Management Views and functions) tiek izmantoti lai iegūtu informāciju par servera stāvokli. Šo informāciju var izmantot stāvokļa novērošanai, problēmu diagnosticēšanai un SQL Server ātrdarbības uzlabošanai. Rakstā apvienoti raksti no šī emuāra un dotas saites uz citiem resursiem.

ceturtdiena, 2011. gada 31. marts

Rīks: ClearTrace

Pēc video noskatīšanās iemēģināju tajā minēto rīku- ClearTrace. Rīka galvenā nozīme- normalizēt ar SQL Server Profiler noķertos ziņojumus. Rīks tiešā veidā atvieglo ātrdarbības problēmu konstatēšanu.

otrdiena, 2011. gada 29. marts

Katalogu skati (Catalog Views)

Katalogu skati satur noderīgu un ļoti dažādu informāciju par SQL Server. Šajā rakstā piemēru apkopojums, kur šī informācija tiek izmantota emuāru rakstos.

ceturtdiena, 2011. gada 24. marts

Kāpēc izmantot MS SQL Server 2008

Pamazām sāk parādīties iemesli, kas man liekas vilinoši lai izvēlētos strādāt ar SQL Server 2008. Šajā rakstā apvienoju lietas, kas mani ir ieinteresējušas.

trešdiena, 2011. gada 23. marts

Retinātie faili (Sparse files)

Retinātie (sparse) faili ir NTFS failu sistēmas iespēja. Īsumā ideja- fails aizņem tikai tik daudz vietas, cik tajā ir reālie dati. Pārējā vieta paliek pieejama OS.

pirmdiena, 2011. gada 21. marts

SSMS: Konekciju krāsas

Noderīga iespēja SSMS- norādīt konekcijai krāsu, kas parādās vaicājumu rakstīšanas loga apakšā. Piemēram, viena krāsa testa videi, cita (hmm, uzkrītoši sarkana) produkcijas videi.

pirmdiena, 2011. gada 14. marts

SQL Server kursors bez kursora

Interesanti, kā tad tas ir- kursors bez kursora? Kursori man nepatīk (lai arī to ienaidnieks gluži neesmu), tādēļ, kad vien iespējams, mēģinu panākt līdzvērtīgu rezultātu neizmantojot kursoru.

trešdiena, 2011. gada 9. marts

Piemērs: Skats ar "With Check Option"

Ja maināmam skatam (updateable view) ir opcija "With Check Option", tad pirms datu mainīšanas tiek veikta pārbaude, vai izmaiņu gadījumā skats joprojām šo rindu atgriezīs. Ja tā nav, datu mainīšana tiek aizliegta.
Lielisks parametrs papildus datu drošībai datu bāzē.

otrdiena, 2011. gada 8. marts

piektdiena, 2011. gada 4. marts

DML trigera atslēgšana

Rakstā aprakstīts kā var aizliegt tabulas/skata DML trigera izpildi. Dots piemērs un skaidrojums, kāpēc tas ne vienmēr ir derīgs risinājums.

ceturtdiena, 2011. gada 3. marts

Piemērs: Instead Of DML trigeris skatam

Rakstā ar piemēru parādīts "Tā vietā" (Instead Of) trigeris uz skata. Ideja tāda, ka skats attēlo visus tabulas ierakstus, kam nav norādīta pazīme "Dzēsts". Dzēšot ierakstu no skata, tie tiek nevis izdzēsti, bet atzīmēti kā dzēsti.

trešdiena, 2011. gada 2. marts

Piemērs: DML trigeris audita ierakstiem

Piemērā izveidota testa tabula un audit tabula, kurā tiek reģistrēts izmaiņu veicējs (kopā ar citu informāciju). Parādīta Inserted un Deleted tabulu izmantošana praksē.

otrdiena, 2011. gada 1. marts

DML trigeri

DML (Data Manipulation Language) trigeri ir pats senākais un biežāk izmantotais trigeru veids SQL Server. Šajā rakstā aprakstītas manuprāt svarīgākās lietas.

pirmdiena, 2011. gada 28. februāris

CV lietotāju tiesību noskaidrošanai

Rakstā parādīta Catalog View skata sys.database_permissions lietošana. Izveidots skripts, ar kura palīdzību var iegūt datu bāzes objektus, lietotājus un lietotāju grupas, kam piešķirtas tiesības uz šiem objektiem. Papildus tam, lasāmāku vaicājumu rezultātu iegūšanai, izmantota Pivot klauza.

sestdiena, 2011. gada 26. februāris

DB Mail- kopsavilkums

Apvienoti emuāra raksti par DB Mail- kas tas ir, kā risināt problēmas un izmantošanas piemēri.

Piemērs: DB Mail izmantošana SQL Server Agent

Vēl viens neliels piemērs DB Mail izmantošanai- šoreiz no SQL Server Agent. (rakstu sērija par šo tēmu- DB Mail kompsavilkums)

Piemērs: DB Mail e-pastu sūtīšana

Rakstā daži piemēri, kā nosūtīt e-pastus. Papildus tam arī daži ar lietotāju tiesībām saistīti jautājumi. E-pasta sūtīšanas procedūras apraksts msdn atrodams šeit: sp_send_mail.

DB Mail problēmu risināšana

Lai arī vienkārši uzstādāms un samērā vienkārši nokonfigurējams lietošanai, tomēr ne vienmēr viss notiek tik gludi kā gribētos. DB Mail nokonfigurēju uz diviem datoriem. Vienai instancei viss bija lieliski, savukārt ar otru sanāca noņemties. Šeit drīzāk nevis risinājumi, bet vietas, kur meklēt risinājumus.

Konta un profila izveide e-pastu sūtīšanai (DB Mail)

Rakstā parādīti divi veidi (caur SSMS interfeisu un ar skripta palīdzību), kā izveidot DB Mail kontu un profilu e-pastu sūtīšanai izmantojot DB Mail.

Kā atļaut DB Mail uz SQL Server instances

Rakstā aprakstīts, kā konfigurēt SQL Server, lai varētu izmantot datu bāzes e-pasta (Database Mail) iespējas. Datu bāzes e-pasts ir izmantojams SQL Server 2005 un jaunākās SQL Server versijās. Ieteicams izmantot SQL Mail vietā, kas bija pieejams iepriekš (SQL Server 2008 R2 joprojām pastāv iespēja izmantot SQL Mail, tomēr netiek rekomendēts).

E-pastu sūtīšana no SQL Server (DB Mail)

Rakstā aprakstīts, kas ir Database Mail (DB Mail) un kā tas strādā. Tāpat pieminēts tā priekšgājējs- SQL Mail. (rakstu sērija par šo tēmu- DB Mail kompsavilkums)

ceturtdiena, 2011. gada 24. februāris

SARG optimizācija

SARG (no angļu val. Search Arguments) ir tā vaicājuma daļa, ar kuras palīdzību tiek filtrēti vaicājuma atgrieztie rezultāti- gan tie, kas ir tabulu sasiešanas On daļā, gan tie, kas ir where daļā. Bieži vien šī vaicājuma daļa arī nosaka, kādi indeksi tiks izmantoti vaicājuma optimizēšanai.

trešdiena, 2011. gada 16. februāris

otrdiena, 2011. gada 15. februāris

Brainbench testi

Emuārā klusums ielavījies, bet ko darīt, dienā, diemžēl, tikai 24 h.. Tomēr, iedvesmojoties no no raksta Brainbench testi, arī es pamēģināju.

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.