in

mscommunity.net

Interactive mscommunity.net online activities

data.hr

  • SQL Server Bootcamp and the new BOL release

    My friend Marko Čulo and I delivered the "SQL Server bootcamp" training in Varaždin MIC last week. Those "bootcamp" trainings are always special, I enjoy them very much. In the near future, I plan to do one more 5-days training at the beginning of December, this one more focused than the bootcamp (and I still haven't decided where the focus will be -- dev or DBA side of things -- so I'm listening).

    In other news: Microsoft released the first update to SQL Server 2008 Books Online a few days ago. This is the official RTM version of the BOL -- as opposed to one that shipped with RTM of the server, which was in fact RC. To add further to the confusion, it's dated as "August 2008", which is when the topics were closed and sent to localization, and not the release date. Oh, well.. :)

    The BOL download is available here:

    http://msdn.microsoft.com:80/en-us/sqlserver/cc514207.aspx

    Have fun,

    Dean

  • Sinergija 2008 and DevReach 2008

    Today I got an email from Vladimir Knezevic from MS Serbia that my “Microsoft SQL Server 2008 Data Auditing” presentation was accepted at this year's Sinergija conference. It's a great news, I'm so thrilled to be given the opportunity to speak there.. And it's not just because Sinergija is being held in Novi Sad this year :) Haven't been there for some twenty-something years, but once upon a time I spent one very colorful and formative year of my life there, and the memories, despite all the time passed, are still very fond nd dear. So, 14-17 October I'm in Novi Sad. Come join me there!

    Unfortunately, this year's Sinergija overlaps with another very important event in our part of the world, if I may say so: DevReach conference (13-14 October, Sofia, Bulgaria) is happening the exact same week as Sinergija. That's a shame, I'd like so much to be at both places, but it's just not physically possible. And since I was in Bulgaria very recently, I opted for Sinergija.

    You might like to know that my dear friend Martin Kulov, who's working very hard to make DevReach such a great event (just check the list of speakers and the agenda at the event's web, you'll see what I mean), offered some great discounts for our community members interested in attending DevReach. There is 20% early-bird discount, and 20% discount for INETA UG members, as well as some volume discounts. You should really consider taking this opportunity, Bulgaria is a great country, wonderful people, and you're bound to have a great time there!

    Of course, in September we're all at Mobility Day here in Zagreb, right?

    Have fun,

    Dean

  • SQL Server 2008 RTM'd

    About 9:30 PST SQL Server 2008 RTM'd. It's available for download from MSDN and TechNet. I'm dowloading it already :)

    http://msdn.microsoft.com/subscriptions/downloads/default.aspx

    http://technet.microsoft.com/subscriptions/downloads/default.aspx

    On a side note, I'm off to Krk tomorrow morning. See you in 2 weeks :) 

    Have fun,

    Dean

  • CodeCamp.BG

    Thanks to my good friend Martin Kulov, who invited me, and to Microsoft Bulgaria, who will cover my expences, I'm going to appear at the CodeCamp.BG next weekend.
    I will be doing my ever-changing and ever-improving "Data Auditing in SQL Server 2008" session. There are some interesting improvements to the session since i did it last. But more on it after I'm back home.
    Now I'm looking forward to an interesting weekend in Bulgaria!

     Later..

  • Our Lady of the Lake

    OK, so the Kulendayz (http://kulendayz.mscommunity.net) are over.. I still don't quite believe it, though. It was so intense period -- preparing the event and actually making it happen -- that now I feel kinda empty.

    It was the best conference ever, if you ask me. I'm biased, of course. But if I try to evaluate it objectively, I still find it an amazin event. Here's why:

    - it was the first regional community conference in this part of the globe
    - we had speakers and attendees from seven countries, the whole this region plus Belgium plus Ohio :)
    - there were 10+ MVPs presenting and engaging in some deep technical discussions with the crowd
    - there were over 100 attendees at the conference
    - all the sessions were highly technical, very professionally presented and well attended
    -we managed to pull it out with a minimal budget and with lot of improvising, and thanks to the enormous effort by our local community members, it was barely noticable
    - it was a free-for-all conference
    - everybody, I believe, was having such a good time, especially on Saturday evening :))

    Personally, I was amazed by commitment from our local community people. It was really fantastic, Toni and Iggy and everybody else were doing their best to make this an event to remember. Bernard and I will really have to find a way to thank them.

    And the speakers.. What to say about them? Over a dozen of high profile, very knowlegdeable people, most of them MVPs, doing it all for free. Thanks, guys!

    I'd like to express my gratitude to people from Microsoft who helped us with funding and with organization -- we wouldn't be able to do it, at this scale, without the help from them.

    I was so happy for Bernard when Anka announced the he was awarded an MVP. Way to go, Bernard, it was so deserved!

    Last but not least, I'd like to thank all the good people who gathered at the conference. You were such a great crowd, and I hope to see you all here next year!

    Later,

    Dean

  • DLinqy-thingy, Part One

    At last, I found some spare time to start playing with that Linq2SQL thing. Installed VS2008 RTM. fired it up, created a new C# console project, added a reference to System.Data.Linq, created the appropriate .dbml to Northwind database, and typed in the following code, more or less copied from the ScottGu blog (http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx):

                northwindDataContext db = new northwindDataContext();

                Product product = db.Products.Single(p => p.ProductName == "Flotemysost");
                product.UnitPrice = 99;
                product.UnitsInStock = 5;

                db.SubmitChanges();

     

    Fired up the SQL Server profiler to capture what's really happening, and pressed F5.

    And here's what was in the profiler trace:

    exec sp_executesql N'SELECT [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID], [t0].[CategoryID], [t0].[QuantityPerUnit], [t0].[UnitPrice], [t0].[UnitsInStock], [t0].[UnitsOnOrder], [t0].[ReorderLevel], [t0].[Discontinued]
    FROM [dbo].[Products] AS [t0]
    WHERE [t0].[ProductName] = @p0',N'@p0 nvarchar(11)',@p0=N'Flotemysost'

    exec sp_executesql N'UPDATE [dbo].[Products]
    SET [UnitPrice] = @p9, [UnitsInStock] = @p10
    WHERE ([ProductID] = @p0) AND ([ProductName] = @p1) AND ([SupplierID] = @p2) AND ([CategoryID] = @p3) AND ([QuantityPerUnit] = @p4) AND ([UnitPrice] = @p5) AND ([UnitsInStock] = @p6) AND ([UnitsOnOrder] = @p7) AND ([ReorderLevel] = @p8) AND (NOT ([Discontinued] = 1))',
    N'@p0 int,@p1 nvarchar(11),@p2 int,@p3 int,@p4 nvarchar(16),@p5 money,@p6 smallint,@p7 smallint,@p8 smallint,@p9 money,@p10 smallint',
    @p0=71,@p1=N'Flotemysost',@p2=15,@p3=4,@p4=N'10 - 500 g pkgs.',@p5=$21.5000,@p6=26,@p7=0,@p8=0,@p9=$99.0000,@p10=5


    What can we say about the SELECT statement? It's simple, but there are at least two things wrong. First, notice that the SELECT list incudes *all* columns from the Products table, although we had no intention of using them all. I agree, Linq has no way of guessing what we're going to need and what not, but anyway it's way too easy to type in an equivalent of "select *" without being aware of it. Second, the @p0 parameter is nvarchar(11). It's just plain stupid, IMHO. Remember, we have the data model in the project, and the Linq engine knows that the ProductName column's datatype is nvarchar(40). Nevertheless, it decided to simply count the characters from the "Flotemysost" const. Why, oh why? OK, so we will get the different query plan depending on the value passed to the query. Not exactly good for the plan reuse, right?

    And what to say about the "optimistic" UPDATE statement? Well, it's just plain wrong.. Please -- never, never, never update the data without using a stored procedure. Please :)

    TBC.

    Dean

    Posted vlj 21 2008, 07:06 by dvitner with 3 comment(s)
    Filed under:
  • I unikifikacija ima granice..

    OK, long time no see.. :))

    Svi znamo da mozemo kreirati clustered indeks (CI) na (skoro) bilo kojem subsetu kolona iz tablice. Također, svi znamo da možemo kreirati nonclustered indekse (NCI) na (skoro) bilo kojem subsetu kolona iz tablice, manje-više neograničen broj njih.

    Kod upita koje radimo na tablicu, kada access path prema podacima koji izabere SQL Server optimizer uključuje NCI, i ako taj NCI nije "covering" za taj upit, SQL Server mora pročitati ostale kolone koje mu trebaju tako da pristupi clustered indeksu*, ako ga imamo. Naravno, u slucaju da nemamo CI na tabli, prica se mijenja, i ostatku podataka se pristupa preko row identifikatora (RID). No, zadržimo se na ovom slučaju kad radimo seek na NCI na tabli s CI.

    Svaki red u NCI, pored vrijednosni kolona koje čine indeks, sadrži i vrijednost CI, pomoću kojeg onda SQL Server pronalazi potreban red u CI, tj samoj tabli (jer CI nije nista drugo nego tabla, s indeksnom strukturom iznad sebe). Da bi se to moglo ostvariti, tj da bi SQL Server mogao locirati baš taj određeni red u tabli/CI, očito je da vrijednost CI mora biti unique za tablu. S druge strane, CI se može bez problema kreirati i nad non-unique kolonom, dakle može sadržavati iste vrijednosti indeksnih kolona za različite redove. Kako je onda moguće pronaći odgovarajući red iz NCI u CI kad identifikator preko kojeg se to radi nije unique?

    Odgovor je prilično jednostavan: ako imamo non-unique CI, SQL Server će dodati još jednu kolonu u CI (tzv. uniquifier) i zatim u NCI prenositi ne samo vrijednost CI nego i taj uniquifier. Dakle, na umjetan način će "unikificirati" vrijednost clustered indeksa (da li je ovdje pravilno reći "unikificirati" ili "unificirati"?). Ta "unikifikator" kolona se ne može vidjeti kroz SELECT, nego samo korištenjem DBCC PAGE naredbe. Pored toga, ona je int tipa. Pa sad, ako imate CI na koloni koja ima vise od 2^31 (sasvim precizno, ne 2^31 nego 2.147.200.030) neke iste (kombinacije) vrijednosti u CI, onda imate problem, ne? I osobno, rekao bih da ga u tom slučaju i zaslužujete :))

    Pozdrav, čujemo se.

    Dean


    *) Ne, ne mora nužno biti CI, ako postoji NCI koji je uži i kojem je pristup jeftiniji i preko kojeg se može zadovoljiti upit, optimizer se može odlučiti i za taj NCI. Obećavam post u kojem ću ovo demonstrirati.

    Posted vlj 12 2008, 08:21 by dvitner with 1 comment(s)
    Filed under:
  • Lublana ma živalski vrt

    U srijedu sam bio u Ljubljani, kao gost predavač na sastanku slovenačke UG. Prvi slot sam popunio ja, s SQL Server Mythbusting, drugi slot je odradio domaći SQL Server MVP Dejan Sarka s Database Design Myths. Sve u svemu, jako, jako prijatno iskustvo. Dejan i Miha, hvala vam što ste me pozvali.

    Prva stvar kojom sam bio iznenadjen je bio broj ljudi koji su prisustvovali eventu -- ili, bolje da kažem, koji su pokušali prisustvovati eventu. Prostorija u kojoj smo bili je primala za sve one koji su željeli prustvovati. Kapacitet je bio recimo 70-ak ljudi. S pomoćnim stolcima koji su doneseni 80-ak. Oni koji nisu uspjeli uhvatiti mjesto u dvorani su stajali u hodniku. Oni koji nisu uspjeli uhvatiti mjesto u hodniku, pili su pivo u kafiću pokraj. MS Slo, voljeli bismo imati veću prostoriju za iduci susret, molim vas!

    Druga divna stvar je bio način na koji su ti dragi ljudi učestvovali u predavanju. Nema ljepšeg iskustva za predavača nego kad publika sudjeluje aktivno u predavanju - a tako aktivne, informirane i dobronamjerne publike kao što je bila ova u Ljubljani u srijedu, nema nigdje. Svaka čast, uvijek ću rado biti vaš gost!

    Naravno, moram zahvaliti ljudima iz MS Slo što su omogućili ovaj event (čit. platili mi spavanje u hotelu) i našem lokalnom MS Hr na podršci (čit. plaćenim troškovima putovanja), i mojoj firmi (jer nisu pravili problem za ta dva dana away). Zaista mi je drago da je ovo povezivanje community-ja Slovenije i Hrvatske shvaćeno kao nešto što zaslužuje podršku. Nadam se da ćemo slične akcije moći ostvariti i ubuduće, i ne samo s našim slovenačkim prijateljima.

    A sad, da ne kažete da samo hvalim, evo i par primjedbi.. Ups, nemam nijedne :)

    PPT i semplovi s predavanja će AFAIK biti raspoloživi na Slo community webu - link ću postaviti čim postane raspoloživ.

    Pozdrav, čujemo se.

    Dean

    Posted lis 20 2007, 05:57 by dvitner with 4 comment(s)
    Filed under: ,
  • Myths&legends

    Mitovi i legende (o SQL Serveru, ne o kralju Arturu) su izgleda popularna tema ovih dana. Na privatnoj MVP news grupi je nedavno bio jedan prilično opsežan thread o njima. Maciej Pilecki je upravo danas popodne radio Myths&legends workshop ovdje u Cavtatu. Marko Čulo radi predavanje u subotu na codecampu na tu temu.

    Što se misli kad se kaže "mitovi i legende"? Uglavnom se ima na umu neke manje-više netočne tvrdnje koje kruže community-jem, a koje su zbog same svoje dugovječnosti i upornosti dobile status neslužbenih "istina". Neke od njih su zabavne, neke prilično opasne, ali niti jedna od njih nije istinita.

    Nemam namjeru nabrajati ovdje te mitove. Pojavite se u subotu na codecampu, odslušajte Markovo predavanje, i čut ćete. Ali, danas mi je palo na pamet nešto što još do sada nigdje nisam čuo ni pročitao - a legenda je, po definiciji.

    Naime, kad govorimo o transakcijama, obično imamo na umu onu kraticu ACID - atomicity, consistency, isolation, durability. Consistency se obično definira kao svojstvo transakcije da iza sebe (commit ili rollback, svejedno) ostavi bazu u logički konzistentnom stanju. I to se onda obično ilustrira primjerom da kao neka banka prebacuje neki iznos novaca s jednog računa na drugi, i to se realizira kroz dva odvojena INSERTa: jedan kojim skidamo novac s računa A i drugi kojim stavljamo taj isti iznos na račun B. A transakcija ovdje znači da će oba INSERTa, ako ih "zatvorimo" u transakciju i odradimo barem nekakav osnovni error checking, proći kao jedan, ili pasti kao jedan, dakle "all or nothing".

    To je jasno, i u čemu je problem? Problem je u tome tko definira što je tu logička konzistentnost podataka. U ovom slučaju, to definira aplikacija. Aplikacija isto tako može (pogrešno) reći da želi s računa A skinuti 1000, a na račun B staviti 2000. Ili recimo izvršiti samo jedan INSERT. Da li je i tom slučaju baza podataka ostavljena u logički konzistentnom stanju? Možda, iako bi se moglo reći da nije :) Da li baza zna da li je u konzistentnom stanju ili nije? Nema pojma. Zašto nema pojma? Zato što ovo poslovno pravilo, koje kaže da iznos novca koji se skida s jednog računa mora biti identičen iznosu koji se stavlja na drugi račun, nije izraženo deklarativno, nego je (ako je) realizirano samo programski.

    Dakle, transakcija sama po sebi ne jamči ništa, barem u ovakvom slučaju kad je poslovno pravilo realizirano na ne-deklarativan način. Transakcija je ovdje samo mehanizam koji je na raspolaganju programeru da osigura da se nekoliko (ne)ovisnih upita izvršava kao jedna logička jedinica, i ne puno više od toga.

    Pozdrav, čujemo se.

    Dean

    Posted ruj 25 2007, 06:17 by dvitner with 3 comment(s)
    Filed under:
  • Kriza identiteta

    Je, znam da sam rekao kako ću ovdje pričati o Katmai-ju i uzbudljivim još-uvijek-novim stvarima u Yukon-u.. Budem. Idući put :) Danas, nešto što mi se mota po glavi zadnjih par dana. Stara i otrcana tema, možda, ali nažalost izgleda još uvijek aktualna.

    Prije nekog vremena, na Mobility Day (koji je BTW po meni sasvim uspio kao konfa, svaka čast organizatorima i predavačima!) sjedio sam na predavanju na kojem je predavač, pored još nekih "bisera" koje sad neću spominjati, ničim izazvan ustvrdio kako je ustvari dobra ideja postaviti GUID kao primary key ako se tablica ima namjeru koristiti u replikaciji. Hm..

    Pukom slučajnošću, dan-dva iza toga, na hr.comp.programiranje.baze -- prilično divlje zna biti tamo ponekad, ali moj samaritanski duh se hrani pomažući ljudima gdje god -- u jednom odgovoru sam onako u prolazu savjetovao OP-u da ne koristi IDENTITY za primary key. I u tren oka par ljudi je skočilo s pitanjem "pa zašto sad to?". Hmm..

    Da stvar bude još gora, jedan učesnik u threadu je, valjda iz želje da pojasni stvari, postao link na članak Kimberly Tripp o clustered indeksima. Hmmm..

    OK, čemu dakle taj hm-hmm-hmmm od mene? Zaista, zašto ne koristiti autogenerated vrijednosti (kao što su IDENTITY i GUID) za primary key na tablici? Odakle pomutnja? Pokušat ću jednostavnim jezikom, i uglavnom o IDENTITY-ju, njega se puno više zloupotrebljava.

    Prvi i osnovni razlog je taj što ključevi (primarni, sekundarni, kandidati, kojigod) stvar logičkog dizajna baze podataka, i tiču se samo integriteta podataka. Osnovna zadaća ključeva je da se pomoću njih može jednoznačno identificirati neki red. IDENTITY i GUID su implementacijski detalj u SQL Serveru -- oni ne postoje u realnom svijetu, nisu dio poslovne domene, nemaju ama baš nikakve veze s podacima, njihova vrijednost nije poznata do trenutka nakon što su podaci već upisani, korisniku ne znače ništa i ne može ih koristiti u upitima, GUID pored toga i nije nešto što želite ukucati preko tipkovnice, etc. Očito je da oni ne ispunjavaju onu maloprijespomenutu osnovnu zadaću - da identificiraju red u tablici.

    Tu se javlja i par sasvim praktičnih problema. Prvi je taj da, kako sam već rekao, vrijednost IDENTITY kolone nije poznata prije nego što smo podatke upisali u bazu. Uzmimo za primjer onaj čuveni sa SalesOrderHeader i SalesOrderDetail tablicama iz AdventureWorks sample baze (usputbudirečeno, ta baza je više primjer kako NE dizajnirati bazu, nego obrnuto.. no dobro). Imamo SalesOrderID kolonu s dignutim IDENTITY property-jem kao PK na SalesOrderHeader tablici, i postavljen FK constraint sa SalesOrderDetail na SalesOrderHeader preko SalesOrderID kolone. Što radimo kad želimo upisati novi order, i header i details? Nešto ovakvo:

    INSERT Sales.SalesOrderHeader (<columns>) VALES (<values>);
    SET @SalesOrderID = SCOPE_IDENTITY();
    INSERT Sales.SalesOrderDetail (SalesOrderID, <other_columns>) VALUES (@ID, <other_values>);
    INSERT Sales.SalesOrderDetail (SalesOrderID, <other_columns>) VALUES (@ID, <other_values>);


    Sve pet ako je samo jedan order u pitanju. A što ako želimo odjednom upisati nekoliko ordera? Npr:

    INSERT Sales.SalesOrderHeader (<columns>) SELECT (<columns>) FROM OverseasSales.SalesOrderHeader WHERE <filter>;
    INSERT Sales.SalesOrderDetail (SalesOrderID, <other_columns>) SELECT ???


    Ako i uspijete saznati novogenerirane vrijednosti za SalesOrderID (hint: OUTPUT), kako ćete ih logički povezati s onim izvornima? OK, mi smo kreativni ljudi i smislit ćemo već nešto..

    Nadalje, IDENTITY ne mora nužno biti unique (IDENTITY_INSERT, recimo). Bad.

    Za identične podatke -- ako ih upisujemo u dva navrata -- možemo dobiti (ne samo da možemo, nego ćemo i dobiti) dvije različite vrijednosti u IDENTITY koloni. Isto je i ako upisujemo identične podatke u dvije različite baze. Pa onda poslije imamo problema s konsolidacijom (i trošimo novce na skupa MDM rješenja).

    Vrijednost IDENTITY-ja se generira neovisno o transakciji. Npr:

    SET NOCOUNT ON;
    GO

    USE tempdb;
    GO

    CREATE TABLE tbl (c1 int IDENTITY(1,1), c2 varchar(10));
    GO

    INSERT tbl VALUES ('qwerty');

    BEGIN TRAN;

    INSERT tbl VALUES ('asdfgh');

    SELECT * FROM tbl;

    ROLLBACK;

    INSERT tbl VALUES ('asdfgh');

    SELECT * FROM tbl;

    DROP TABLE tbl;

     

    c1          c2
    ----------- ----------
    1           qwerty
    2           asdfgh

    c1          c2
    ----------- ----------
    1           qwerty
    3           asdfgh


    Za drugi red ('asdfgh') smo prvo dobili vrijednost c1 kolone 2, a nakon ROLLBACK-a pri ponovnom upisu smo dobili 3. Plus toga, imamo i gap (hrvatski: rupu) u redoslijedu, što može i ne mora biti bitno.

    A GUID.. Ajd, sad barem imamo NEWSEQUENTIALID(). I da, istina, morate imati uniqueidentifier kolonu da biste replicirali tablicu. Svejedno, ni to nije razlog da je proglasite za primary key :)

    A što nam je htio reći onaj kolega s početka priče, kad nas je naputio da pročitamo članak o clustered indeksima s bloga Kimberly Tripp? To je jedan od onih "mitova i legendi" o kojima će, pretpostavljam, pričati Marko na bootcampu ovaj mjesec. Radi se naime o tome da su primary key i unique constrainti u SQL Serveru podržani preko (unique) indeksa. Što je sasvim OK. Ono što nije OK je to da će, ako eksplicitno ne kažete drugačije, SQL Server primary key podržati s clustered indeksom. A to nije OK iz najmanje dva razloga. Prvo, to stvara konfuziju kod ljudi, i prečesto se te dvije stvari poistovjećuju, iako se ustvari radi o dvije različite stvari -- jedno je integrity constraint, a drugo implementacija, tj kako je taj constraint realiziran -- pa se onda često priča o jednom, a misli se na drugo. Zatim, clustered indeks je jedna prilično važna alatka iz arsenala perf tuninga. Postavljanjem clustered indeksa na ovoj ili onoj koloni možemo nekad ubrzati određenu vrstu upita, recimo range query-je (ordered scan). Ne, ovime nisam želio reći da ćemo ako želimo ubrzati range upite obavezno postaviti CI na kolonu po kojoj je definiran range. Ovisi. Na koju kolonu ćemo postaviti clustered indeks, ili ga nećemo postaviti uopće, ovisi o podacima i njihovom korištenju, ali želimo li doista odreći se te mogućnosti?


    Nakon svega ovoga -- ipak, IDENTITY uopće nije tako loš, ali važno je znati što nije i koja su ograničenja. Nekad je dapače i koristan -- može se postaviti unique constraint na njega i raditi DRI, pa čak i clustered indeks se može postaviti na njega. Ako imate razloga za to. Sve ovisi :)

    Puno više o svemu ovome ćemo pričati na bootcampu u Varaždinu. Kog zanima, dobrodošao je. Early bird i dodatni popust za community još uvijek se mogu iskoristiti.

    Pozdrav, čujemo se.

    Dean

    Posted ruj 18 2007, 06:23 by dvitner with 3 comment(s)
    Filed under: ,
  • Please allow me..

    Što nam donosi SQL Server 2008 (FKA Katmai)? To je jedna od tema kojima ćemo se baviti ovdje u narednim postovima.  Budite sigurni, nećemo samo nabrajati i ilustrirati nove feature-s -- kao i uvijek od mene, ovdje mozete očekivati i kritičke osvrte i osobna mišljenja.

    Za početak, ustvari i prije početka, jedan generalni stav -- Katmai ne donosi ništa tako revolucionarno novo kao što je donijela 2005-ica. Nema velikih arhitektonskih promjena, kao što su u Yukonu primjerice bili CLRSQL, XML podrška, ili (najvažnija stvar IMHO) copy-on-write i row versioning. Ono što Katmai donosi, to bi se prije moglo reći da su stvari koje nisu uspjele ući u Yukon timeframe (DATE i TIME tipovi, npr, ali "done right this time"), ili se svode na poliranje postojećih funkcionalnosti (kao recimo unaprijeđenja na DB mirroring-u). Naravno, ima i par zgodnih sasvim novih stvari. Ali, o tome ćemo kasnije.

    Yukon je još uvijek, čak i za mnoge MVP-jeve, "nova" verzija sikvela, nešto što se na mnogim mjestima tek uvodi u poslovanje ili se uvođenje tek priprema. Mnoge stvari koje imamo u Yukonu zato su još nedovoljno poznate ili nedovoljno korištene. Te "nove" stvari, njihovo korištenje u praksi, do's and don'ts, best practices i perf implikacije, bit će druga velika tema narednih postova.

    Pored ovog dvoga, koristit ću ovaj prostor i za najavu nekih kako svojih osobnih tako i community akcija.

    Za početak, volio bih vas sve pozvati na Vladanov codecamp 19-og (http://codecamp.mscommunity.net/). Ne znam koliko sad i ovdje smijem reći o samom eventu, jer agenda još nije službeno objavljena, ali već sada je jasno da će to biti najjači skup kvalitetnih i zanimljivih predavača iz (ne samo HR!) MS community-ja okupljenih na jednom mjestu -- ikada.

    Odmah nakon toga, prvi tjedan u listopadu, Marko i ja radimo "second edition" SQL Server botcampa u MSPTC u Varaždinu (http://www.mscommunity.net/Default.aspx?tabid=1103). Ako ne znate što je "bootcamp", samo tri riječi: krv, suze i znoj. Prijavite se, dodjite, nećete požaliti.

    A sredinom listopada, Marko i ja idemo u radni posjet Dejanu i Mihi u Ljubljanu, na sastanak SLO UG. Sunčana strana Alpa :)

    Pozdrav, čujemo se.

     Dean

     

    Posted ruj 08 2007, 07:22 by dvitner with 1 comment(s)
    Filed under: ,
Powered by Community Server (Commercial Edition), by Telligent Systems