Samulsu darbojoties ar (lokālajām) temporālajām tabulām.. Pamēģināšu samulsināt arī citus.
ceturtdiena, 2012. gada 13. decembris
otrdiena, 2012. gada 13. novembris
Rezerves kopijas: savsarpēji saistītas datu bāzes
Mana attieksme pret rezerves kopijām gadu gaitā ir visai radikāli mainījusies. Ilgu laiku priekšstats bija apmēram tāds- kas tur daudz ko galvu lauzīt, vienu ātru back-up dienā un lieta darīta. Tomēr, jo vairāk laiks iet, jo sarežģītāka tā padarīšana sāk šķist. Šajā rakstā apskatīšu vienu no iespējamiem sarežģījumiem.
trešdiena, 2012. gada 31. oktobris
Datu bāzu administrators
Nav jau tā, ka tas būtu dikti svarīgi, bet zināšanai- pareizi ir "Datu bāzu administrators", nevis "Datu bāžu administrators".
Lai arī "bāzes" ir lietvārds, sieviešu dzimtē, daudzskaitlis, uz šo vārdu neattiecas ierastais likums par līdzskaņu miju (par lietvārdiem). Vārdnīcā skaidri un gaiši izlocīts kā "bāzu" ("bāze" locījumi no letonika.lv).
Kā man paskaidroja, šis vārds ir izņēmums, uz kuru attiecas: "Līdzskaņu mijas nav - uzvārdiem, kuri beidzas ar -ckis, -skis;- divzilbju personvārdiem ar -tis, -dis; - dažiem lietvārdiem labskanības dēļ, piem. mute - mutu.".
Loģiski secinu, ka šis izņēmums ir "labskanības dēļ". Tā tīri sportiskas intereses pēc mēģināju atrast kādu vietu, kur būtu šie izņēmumi uzskaitīti (un, vēlams, pamatoti), bet mani meklējumi bija bez panākumiem.
Skaidrs, gramatika nav mana stiprā puse. Un tomēr, ideja, ka locīšanas likumu izņēmumus es varu atrast tikai vārdnīcā, meklējot konkrētu vārdu (pie tam, bez skaidrojuma), mani dara mazliet dusmīgu.
Redz pie kā kāda stresa noved datoriķa IF .. THEN .. ikdiena.
2012-11-02 papildināts
Izņēmumu sarakstatomēr eksistē piemērs (avots):
Un ja kādreiz rodas neskaidrības par valodas lietojumu, var rakstīt e-pastu VVA.
2012-11-05 papildināts
Uzrakstīju e-pastu Latviešu valodas aģentūrai (VVA) ar jautājumu, vai eksistē kāda vieta, kur ir pilnībā uzskaitīti izņēmumi un saņēmu atbildi:
Man beidzot apnika cepties par šo jautājumu :).
Lai arī "bāzes" ir lietvārds, sieviešu dzimtē, daudzskaitlis, uz šo vārdu neattiecas ierastais likums par līdzskaņu miju (par lietvārdiem). Vārdnīcā skaidri un gaiši izlocīts kā "bāzu" ("bāze" locījumi no letonika.lv).
Kā man paskaidroja, šis vārds ir izņēmums, uz kuru attiecas: "Līdzskaņu mijas nav - uzvārdiem, kuri beidzas ar -ckis, -skis;- divzilbju personvārdiem ar -tis, -dis; - dažiem lietvārdiem labskanības dēļ, piem. mute - mutu.".
Loģiski secinu, ka šis izņēmums ir "labskanības dēļ". Tā tīri sportiskas intereses pēc mēģināju atrast kādu vietu, kur būtu šie izņēmumi uzskaitīti (un, vēlams, pamatoti), bet mani meklējumi bija bez panākumiem.
Skaidrs, gramatika nav mana stiprā puse. Un tomēr, ideja, ka locīšanas likumu izņēmumus es varu atrast tikai vārdnīcā, meklējot konkrētu vārdu (pie tam, bez skaidrojuma), mani dara mazliet dusmīgu.
Redz pie kā kāda stresa noved datoriķa IF .. THEN .. ikdiena.
2012-11-02 papildināts
Izņēmumu saraksta
Un ja kādreiz rodas neskaidrības par valodas lietojumu, var rakstīt e-pastu VVA.
2012-11-05 papildināts
Uzrakstīju e-pastu Latviešu valodas aģentūrai (VVA) ar jautājumu, vai eksistē kāda vieta, kur ir pilnībā uzskaitīti izņēmumi un saņēmu atbildi:
Teikšu godīgi, atbilde mani neapmierina. Bet labi- parastie mirstīgie drīkst kļūdīties, savukārt valodas speciālistiem vienmēr pa rokai būs minētās vārdnīcas svaigākie izdevumi.5. deklinācijas lietvārdiem tiešām ir raksturīga tradicionālā līdzskaņu mija.Jūs jau esat norādījis raksturīgākos mijas gadījumus.Tāda saraksta, kurā būtu minēti visi vārdi, kam mijas labskaņas dēļ nav, latviešu valodā nav. Norādes par mijas neesamību vai esamību ir atrodamas pie katra atsevišķā vārda Latviešu valodas pareizrakstības un pareizrunas vārdnīcā vai arī Latviešu literārās valodas vārdnīcā.
Man beidzot apnika cepties par šo jautājumu :).
ceturtdiena, 2012. gada 4. oktobris
Extended Events: Strupsaķeres
Pēc vakardienas (2012-10-03) TechDay apmeklējuma ir vēl lielāka interese iepazīties ar Extended Events. Pārsteigums bija tas, ka SQL Server (SQL Server 2008) pēc noklusējuma reģistrē virkni ar dažādiem notikumiem izmantojot Extened Events. Līdzīgi kā noklusētais trace, par ko samērā nesen rakstīju (SQL Server parametrs: "default trace enabled").
trešdiena, 2012. gada 26. septembris
SQL Server parametrs: "blocked process threshold"
Šis parametrs nosaka slieksni, kuru pārsniedzot, SQL Server ģenerē ziņojumu par bloķētiem resursiem. Pēc noklusējuma šis parametrs ir 0. Tas nozīmē, ka bloķēto resursu ziņojumi netiek ģenerēti (tātad, nevar sekot līdzi gadījumiem, kuros uz resursiem jāgaida pārāk ilgi).
otrdiena, 2012. gada 25. septembris
Rīks: SQLQueryStress
SQLQueryStress ir bezmaksas programma vaicājumu ātrdarbības testēšanai SQL Server.
piektdiena, 2012. gada 21. septembris
SQL Server parametrs: "default trace enabled"
SQL Server 2012 šis parametrs kļūst par novecojušu funkcionalitāti (SQL Server novecojusī funkcionalitāte), bet pat SQL Server 2012 pēc noklusējuma šī parametra vērtība ir "1". Tas nozīmē, ka tiek reģistrēti atsevišķi notikumi trace failā. Šajā rakstā par to, kādu informāciju tur var atrast un kā apskatīt noklusēto SQL Server trace failu.
ceturtdiena, 2012. gada 20. septembris
Vaicājuma kompilācijas ietekme uz ātrdarbību
Vaicājuma kompilēšana ietekmē vaicājuma izpildes ātrumu. Ar to saistīta vaicājuma radītā procesora slodze un izmantotais atmiņas apjoms. Tātad esam
ieinteresēti, lai kompilācijas notiktu pēc iespējas retāk. Aprakstīts neliels eksperiments ko veicu ar nolūku salīdzināt vaicājumu izpildes ātrumu veicot izpildes plāna kompilāciju un bez tās.
ceturtdiena, 2012. gada 23. augusts
Norādi shēmas nosaukumu!
Viena no "labās prakses" rekomendācijām rakstā SQL Server labā prakse ir "Shēmas nosaukumu vienmēr rakstīt pirms objekta nosaukuma". Saskāros ar situāciju, kur šī punkta neievērošana rada ātrdarbības problēmas. Tādēļ vēlos pamatot rekomendācijas ievērošanu, aprakstīt un ar piemēru ilustrēt "slikto scenāriju", kas var rasties neievērojot šo rekomendāciju.
trešdiena, 2012. gada 8. augusts
SQL Server labā prakse
Datu bāzes koda rakstīšanas labā prakse nav viennozīmīga. Tāpat neviennozīmīga ir robeža starp koda rakstīšanas labo praksi (koda lasāmība, saprotamība, uztveramība) un to, kas būtu jāievēro SQL Server darbības uzlabošanai. Piemēram, procedūrām ieteikums nelietot 'pr_' ir ātrdarbības apsvērumu dēļ, kamēr lietot 'vw_' prefiksu skatiem ir ieteikums labākas lasāmības dēļ.
otrdiena, 2012. gada 7. augusts
Resource Governor: statistika
Kā jau minēju rakstā Resource Governor: CPU slodzes sadalīšana, Resource Governor (RG) ir pieejams sākot ar SQL Server 2008, Enterprice / Developer redakcijās un ir domāts CPU un atmiņas resursu sadalīšanai starp konekcijām vienas instances ietvaros.
RG savas darbības laikā uzkrāj informāciju par piešķirto resursu apjomu. Uzkrātā informācija ļauj atbildēt, piemēram, uz jautājumu "Cik % CPU patērē lietojums X?" vai "Cik milisekundes ilgs ir vidējais pieprasījums no lietojuma Y?"
RG savas darbības laikā uzkrāj informāciju par piešķirto resursu apjomu. Uzkrātā informācija ļauj atbildēt, piemēram, uz jautājumu "Cik % CPU patērē lietojums X?" vai "Cik milisekundes ilgs ir vidējais pieprasījums no lietojuma Y?"
pirmdiena, 2012. gada 6. augusts
Resursu prasīgākie vaicājumi, procedūras, trigeri
Ātrdarbības problēmu cēloņi var būt dažādi. Risinājumi arī (šo tēmu cītīgi cenšos izvērst sadaļā "Optimizācija"). Šajā rakstā plašāk izvērsta viena no problēmas konstatēšanas pieejām- noskaidrot, kuri no vaicājumiem/procedūrām ir visvairāk resursu prasīgi.
Vai redzi problēmu? (ar atbildi)
Ir divas tabulas:
Create Table dbo.T1Ar datiem (T1 = 3 ieraksti, T2 = 10000 ieraksti):
(
T1ID int primary key identity,
Value varchar(50)
)
Go
Create Table dbo.T2
(
T2ID int primary key identity,
T1ID int foreign key references dbo.T1 (T1ID),
Value char(5000)
)
-- SQL 2008 sintakseIzpildu šādu komandu komplektu:
set NoCount On;
Insert Into T1 (Value) Values ('jo'), ('jo 2'), ('jojo 2');
declare @i int = 0;
while @i < 10000
Begin
Insert into dbo.T2 Values(1, @i);
Set @i += 1;
End
Insert Into T1 Values ('Jauna vērtība');Vai redzi problēmu??
Delete T1 Where Value = 'Jauna vērtība';
trešdiena, 2012. gada 25. jūlijs
Datu kompresēšana: Pārskats par visām DB tabulām
Sākot ar SQL Server 2008, Enterprice/Developer redakcijās ir iespējama datu kompresēšana. Datus var kompresēt datu rindas un datu lapas līmeņos. Datu rindas kompresēšana ir ātrāka un mazāk resursu prasīga, datu lapu kompresēšana ir lēnāka un resursu prasīgāka.
Šajā rakstā SQL vaicājums, kas ļauj saprast cik lieli ieguvumi varētu būt no datu kompresēšanas.
Šajā rakstā SQL vaicājums, kas ļauj saprast cik lieli ieguvumi varētu būt no datu kompresēšanas.
pirmdiena, 2012. gada 23. jūlijs
Resource Governor: CPU slodzes sadalīšana
Resource Governor nodrošina CPU slodzes un atmiņas sadalīšanu starp konekcijām (Enterprice un Developer redakciju fīča, kas pieejama sākot ar SQL Server 2008). Ideja tāda- Lietotājam pieslēdzoties SQL Server instancei, tas tiek iedalīts kādā grupā (Workload Group). Grupām ir definēta pieejamo resursu kopa (Resource Pool), ja sākas cīņa par resursiem, tad tiek piemēroti definētie ierobežojumi.
trešdiena, 2012. gada 18. jūlijs
SQL Server novecojusī funkcionalitāte
SQL Server attīstoties šāda tāda funkcionalitāte tiek mainīta vai noņemta (deprecated features). Piemēram, SQL Server 2008 "sysobjects" ir skats, kuru nākotnē ir plānots likvidēt (tā vietā ir sys.objects). Tādu lietu ir relatīvi daudz. Ir veidi, kā noskaidrot cik daudz novecojušas funkcionalitātes izmantojat.
pirmdiena, 2012. gada 16. jūlijs
SQL Server: Tūlītēja faila inicializācija
[Angliskais termins: "Instant File Initialization"] Veidojot/palielinot SQL Server datu bāzes datu failu tas tiek aizpildīts ar nullēm, lai dzēstu attiecīgajā diska apgabalā esošos datus. ja tiek izmantota tūlītēja faila inicializācija, tad šī nullēšanas daļa tiek izlaista, tādējādi būtiski paātrinot faila izveidi.
piektdiena, 2012. gada 13. jūlijs
SQL Server CPU slodzes simulācija
Kā simulēt CPU slodzi SQL Server? Tāds vienkāršs variants kā to izdarīt- izveidot relatīvi nelielu tabulu, to sasiet pašu ar sevi, izmantojot "Cross Join" un atrast maksimālo vērtību rezultātu kopā. (ideja nāk no šejienes).
piektdiena, 2012. gada 6. jūlijs
SSMS: Uzstādījumi, ko mainu
Uzinstalēju jauno SSMS (lejupielāde: Microsoft® SQL Server® 2012 Express, instalēju tikai SQL Server Management Studio Express. Par iespaidiem drusku vēlāk, kad būs kāds brīdis pastrādāts). Secināju- ir pāris lietas, pie kurām esmu visai pieradis tādēļ uzreiz jāpamaina uzstādījumos. Šodien nekādi nevarēju atcerēties, kurā vietā šīs lietas jāmaina, tādēļ fiksais rakstiņš atmiņas uzlabošanai (konkrētie iestatījumi spēkā gan 2005, gan 2008, gan 2008R2 gan arī 2012 SSMS).
trešdiena, 2012. gada 4. jūlijs
Brīdinājums par izsīkstošu diska vietu
Šajā rakstā par to, kā laicīgi saņemt brīdinājumu par to, ka diska vieta drīz beigsies. Uzreiz piebildīšu, ka šeit aprakstītais mehānisms ir tikai proof-of-concept, ko laika gaitā doma pieslīpēt.
otrdiena, 2012. gada 3. jūlijs
SQL Server parametrs: "max degree of parallelism"
Ja SQL Server instance var izmantot vairāk kā vienu kodolu, tad atsevišķos gadījumos SQL Server arī izmantos vairāk kā vienu kodolu viena pieprasījuma apstrādāšanai. Tātad- vaicājuma izpilde notiks veicot vairākas paralēlas darbības. Atsevišķos gadījumos tas var paātrināt vaicājumu izpildi, bet citos- gluži otrādi.
otrdiena, 2012. gada 26. jūnijs
SQL Server parametrs: "max server memory (MB)"
Bieži šis SQL Server parametrs tiek atstāts noklusētais- 2147483647 (vērtība SQL Server 2008R2 gadījumā- msdn). Lai arī vairumā gadījumu SQL Server lieliski tiek galā ar atmiņas vadību pats saviem spēkiem, šāda konfigurācija atsevišķās situācijās var būtiski traucēt SQL Server darbu.
pirmdiena, 2012. gada 25. jūnijs
piektdiena, 2012. gada 22. jūnijs
Utilītprogramma: sqlcmd
sqlcmd komandvirknes utilītprogramma tiek izmantota, lai izpildītu T-SQL komandas uz SQL Server no komandvirknes. Šī utilīta var tikt izmantota gan kā SQL uzdevuma (job) solis, gan arī, piemēram, DB veidošanas skriptu izpildei (raksta beigās ir automatizētas datu bāzes uzstādīšanas piemērs).
pirmdiena, 2012. gada 18. jūnijs
Vēlos darbu
Dažādu apstākļu rezultātā sāku aizdomāties, kādu darbu tad es vēlētos. Ar domu vienkārši izvērtēt/padomāt, kas tad man īsti patīk, pēc kā tiecos un cik ļoti esošais saskan ar vēlamo.
XML kolonna un Cross Apply
XML datu tipā tiek glabāti XML dokumenti vai XML dokumentu fragmenti. Tātad- tur var būt (un bieži ir) vairāki elementi, kas atkārtojas, veidojot interesantu konstrukciju- tabulas šūnā glabājas vairāki elementi, piemēram, personu saraksts. Šeit par to, kā atlasīt datus no XML kolonnas, veidojot līdzīgu konstrukciju kā galvas-detaļu tabula.
piektdiena, 2012. gada 8. jūnijs
tempdb failu skaits
Uzstādot SQL Server instanci tiek izmantoti noklusētie iestatījumi- temdb datu bāze satur precīzi vienu failu. Šajā rakstā par cēloņiem, kāpēc bieži vien būtu vēlams palielināt failu skaitu un kā to izdarīt.
otrdiena, 2012. gada 5. jūnijs
SSMS: Skriptu ģenerēšana tabulas datiem
Visai bieža ir nepieciešamība izveidot skriptu sākotnējo datu ielādei (piemēram- klasifikatoru datiem). Nez kāpēc biju iedomājies, ka labākais ko šādā situācijā izdarīt nelietojot citu izstrādātāju produktus (red-gate atstāja ļoti labu iespaidu, diemžēl tikai demo- divas nedēļas palietoju)- datus eksportēt un pēc tam importēt.
ceturtdiena, 2012. gada 24. maijs
Ierobežojumu dzēšanas un izveides skripta ģenerācija
Ierobežojumi (Constraints) tiek izmantoti datu integritātes nodrošināšanai. Bet ir dažas lietas, ko nevar ar tabulu izdarīt, ja uz to ir reference no citas tabulas ārējās atslēgas (Foreign Keys). Piemēram, man bija vajadzība pārveidot klasterēto indeksu tā, lai tas izmantotu citas kolonas nekā primārās atslēgas ierobežojums. Lai to izdarītu nepieciešams dzēst visas ārējās atslēgas, veikt izmaiņas un izveidot ārējās atslēgas no jauna.
ceturtdiena, 2012. gada 10. maijs
Tabulas datu sadalījums pa failu grupām
SQL Server tabulu dati glabājas failos, kas pieder failu grupām. Pēc noklusējuma ir tikai viena failu grupa ar nosaukumu "PRIMARY". Šādā gadījumā ir pilnīgi skaidrs, kur atrodas tabulas dati. Tomēr ja tiek izmantotas vairākas failu grupas, tad tabulas dati var atrasties arī vairākās failu grupā.
trešdiena, 2012. gada 9. maijs
SQL Server redakciju atšķirības
Atkarībā no SQL Server redakcija (tulkojot no vārda edition- Express, Standart, Enterprice u.c., nevis no vārda version- 2005, 2008, 2012) ir pieejamas dažādas SQL Server iespējas. Dažas no iespējām izmanto īpašu veidu datu glabāšanai datu bāzes failā un tādā gadījumā datu bāzi nevar atjaunot uz citas SQL Server redakcijas.
trešdiena, 2012. gada 18. aprīlis
Query Notification: .NET SqlDependency klase
Rakstā par to, kā reaģēt uz datu izmaiņām datu bāzē no .NET koda. Zemāk neliels piemērs- konsoles aplikācija, kas, reaģējot uz izmaiņām datu bāzē, izvada uz ekrāna paziņojumu.
pirmdiena, 2012. gada 16. aprīlis
Print komandas teksta garuma ierobežojums
Print komanda atgriež ziņojumu, kas nevar būt garāks par 4000 simboliem (ja nvarchar) vai 8000 (ja varchar).
otrdiena, 2012. gada 3. aprīlis
Rīks: MS SQL Server 2008 R2 Best Practices Analyzer
Šo rīku (kā jau nosaukums pasaka) var izmantot, lai pārbaudītu, cik ļoti ir ievērota "labā prakse" uz SQL Server instances.
Redz kāds tas izskatās:
Instalācijai nepieciešams, lai būtu uzinstalēts šis:
Microsoft Baseline Configuration Analyzer 2.0
Un tad šis:
Microsoft® SQL Server® 2008 R2 Best Practices Analyzer
Un vēl šī saite var noderēt.
Redz kāds tas izskatās:
Instalācijai nepieciešams, lai būtu uzinstalēts šis:
Microsoft Baseline Configuration Analyzer 2.0
Un tad šis:
Microsoft® SQL Server® 2008 R2 Best Practices Analyzer
Un vēl šī saite var noderēt.
Abonēt:
Ziņas (Atom)