otrdiena, 2013. gada 3. decembris

Down-time

Šodien (2013-12-03) piedzīvots relatīvi īslaicīgs emuāra darbības pārtraukums.
Saistīts ar to, ka veicu vidēji veiksmīgus eksperimentus ar domēna iestatījumiem.

Ja lasi šo ziņu, viss atkal ir kārtībā!
(attēls no šejienes)

ceturtdiena, 2013. gada 28. novembris

Rīks: WinDirStat

Šis rīks vienkāršā un pārskatāmā veidā palīdz saprast, kas datorā "apēd" brīvo vietu. Pamēģināju un palika visnotaļ labs priekšstats.

Lejupielādei: http://windirstat.info/


trešdiena, 2013. gada 30. oktobris

In-Memory database (hekaton)

Vakar (2013-10-29) TechDay cita starpā bija lekcija par  datu bāzēm "SQL Server 2014: in Memory Database – What is It and Why We Need It ". Demonstrētie piemēri un slaidi atrodami- http://sdrv.ms/HennTechDay2013.

In memory datu bāzes ir viens no visinteresantākajiem SQL 2014 jaunumiem. Lai šos piemērus pamēģinātu, protams, vajag SQL 2014 CTP2 (kad iznāks gala versija- šobrīd vēl neviens nezin vai nesaka).

Lai nu kā, mēģinot piemērus, neaizmirstiet "SET NOCOUNT ON". Demonstrācijā miljons rindu ievietošanas lielāko daļu laika patērēja tieši ziņojuma "1 row affected" izvadīšana.
set nocount on; -- bez šīs rindas: 00:02:09, ar šo rindu 00:00:49
declare @start datetime = getdate()
declare @i int = 0
begin tran
while (@i < 1000000)
begin                                                                           
    insert Test1 values (@i, 'Product ' + cast(@i as char(6)), 10)   -- 22
    insert Test2 values (@i, 'Product ' + cast(@i as char(6)), 10)   -- 5
    insert Test3 values (@i, 'Product ' + cast(@i as char(6)), 10)   -- 7
    insert Test4 values (@i, 'Product ' + cast(@i as char(6)), 10)   -- 4
    insert Test5 values (@i, 'Product ' + cast(@i as char(6)), 10)   --
    set @i += 1
end
commit
select DATEDIFF(ms, @start, getdate())

otrdiena, 2013. gada 15. oktobris

Izpildes laika izvadīšana

Ja SQL Server Profiler darbināt slinkums, te viens īsais veids kā to vēl var izdarīt:
Declare @StartTime datetime = getdate();
select 1 -- mans vaicājums/procedūra vai vienalga kas..
Print ' Duration = ' + CONVERT(VARCHAR(30), getDate() - @StartTime, 114) + ' (hh:mi:ss:mmm)';
Piebildes
  • DateTime dēļ procedūras rezultātu precizitāte līdz 3 ms (Jauno SQL Server versiju Profiler strādā ar mikrosekundēm, lai arī GUI rāda milisekundes)
  • Uz SQL Server 2005 vai vecākām versijām piemērs ir jāpiekoriģē (sanāks vairāk rindu)
Kāpēc šis variants?
  • Slinkums vērt vaļā profiler
  • Statistics Time ir detalizētāks, taču, piemēram, procedūrā ar kursoru sanāk katras komandas laiks atsevišķi. Un man šeit tas tikai traucēja.
Ko darīt, ja ir daudzas komandas (piemēram, procedūras iekšienē) un vajag/gribas redzēt izpildes laikus procedūras izpildes laikā?

Print vietā izmantot Raiserror (Ziņojumu izvadīšana izmantojot RAISERROR), no sākuma gan ziņojums būs jāpiešķir kādam mainīgajam:
RAISERROR ('Tiks izvadīts momentāli un šī nav kļūda!', 0, 1) WITH NOWAIT; 

ceturtdiena, 2013. gada 11. jūlijs

Rezerves kopijas: daļēja atjaunošana (Piecemeal Restores)

SQL Server ir iespēja veidot rezerves kopijas ne tikai visai datu bāzei uz reiz, bet arī tikai tās daļām. Tas ir noderīgi, ja ir liela izmēra datu bāzes un tikai daļa no datiem būtiski mainās/tiek papildināti. Šādā veidā var būtiski samazināt laiku, kas vajadzīgs rezerves kopiju veidošanai, kā arī rezerves kopijas izmērus.


Datu bāzi ir iespējams atjaunot tikai daļēji. Pēc daļējas atjaunošanas pieejama kļūst tikai atjaunotā datu bāzes daļa. Šī iespēja savukārt ļauj būtiski samazināt atjaunošanas laiku kritiskām datu bāzes daļām. Protams, lietojumam jābūt spējīgam strādāt ar datu bāzi, kas pieejama tikai daļēji.

otrdiena, 2013. gada 14. maijs

Kļūsti par Microsoft sertificētu profesionāli

Katru gadu kā pārsteigums, tomēr vienmēr apmēram vienā laikā, rodas vēlme nokārtot kādu sertifikācijas eksāmenu. Šis raksts ir par to, kam vajadzīgi sertifikāti, kur meklēt savai sfērai atbilstošu Microsoft sertifikācijas eksāmenu un kur eksāmenu kārtot, kā arī par Microsoft eksāmena kārtošanas norisi.

otrdiena, 2013. gada 19. februāris

Unikāli indeksi, ignorējot Null vērtības

Vairākkārt sanācis sastapies ar vajadzību izveidot unikālitātes ierobežojumu ignorējot Null vērtības. Bet ir viena problēma- lai arī Null nav vienāds Null, unikāla indeksa ietvaros visas Null vērtības tiek uzskatītas par vienādām. Ko darīt?

Like atslēgvārds

Like atslēgvārds noder meklēšanai pēc vārda daļas un to var izmantot teksta validācijai, piemēram, rakstot pārbaudes ierobežojumus (Check Constraints). Tomēr, kā vienam tā otram gadījumam Like bieži nav tas labākais variants.

piektdiena, 2013. gada 1. februāris

Rīks: Idera SQL Check

Kādu brīdi atpakaļ lejupielādēju bezmaksas versiju Idera rīkam "SQL Check". Rīks piedāvā reālā laikā monitorēt vairākas lietas: Processes, Waits, Seek Time, Prysical R/W, Cache Hits, CPU Usage, Trhoughput.

ceturtdiena, 2013. gada 24. janvāris

Tabulas parametrs "large value types out of row"

Šajā rakstā par LOB (Large Objects) un mainīga garuma datu glabāšanu SQL Server tabulās un tabulas uzstādījumu "large value types out of row". Minētais parametrs var būt noderīgs ātrdarbības uzlabošanai un var ietekmēt datu kompresēšanu.