Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc

[PL] Nowe typy danych w SQL Server 2008 na MTS 2008 – c.d.

Niedawno pisałem o pytaniach, jakie padły w czasie sesji Krzysztofa Kozielczyka (Program Manager z MS, na codzień pracujący w Redmond) poświęconej nowym typom danych w SQL Server 2008, która miała miejsce na konferencji MTS 2008. Wtedy kilka pytań pozostało bez odpowiedzi. Krzysztof podszedł do sprawy profesjonalnie i po zrobieniu paru wywiadów zebrał listę odpowiedzi na pytania. Uzgodniliśmy, że opublikuję je jako kontynuację wspomnianej notki z mojego bloga. Poniżej prezentuję jeszcze raz pytania i odpowiedzi Krzysztofa (oznaczam je jego inicjałami) wraz z moimi komentarzami (oznaczyłem je moimi inicjałami).

Pytanie: Dlaczego nie można przeprowadzać operacji dodawania (odejmowania) z udziałem nowych typów daty (datetime2, date, datetimeoffset) i liczb integer? Jest to przecież niekonsekwencja i brak spójności z typami danych z poprzednich wersji SQL Servera (datetime oraz smalldatetime).

KK:

  1. Znaczenie takiej operacji jest niejasne i powoduje błedy w kodzie: co to znaczy datetime2 dodać jeden? Jeden dzień? Jedną sekundę? Milisekundę? Bez konsultacji z dokumentacją nie da sie tego wywnioskować, co powoduje że kod może być trudny do zrozumienia.
  2. Staramy się kierować nasz język T-SQL w stronę nowoczesnych języków programowania oraz silnego otypowania.
  3. Rozważaliśmy wprowadzenie typu interwał, który możnaby dodawać i odejmować od typu datetime2. W połączeniu z dodawaniem liczb do datetime2 mogłoby to spowodować cały szereg problemów.

PP:

Ad.1. Idąc tym tropem możnaby zapytać, co oznacza datetime dodać jeden…

Ad.2. Swego czasu Erland Sommarskog postulował o możliwość wyłączenia niejawnej konwersji na serwerze.

Ad.3. IMO, szkoda czasu i środków na realizację czegoś takiego. Są ważniejsze tematy :-)

---

Pytanie: Dlaczego format binarny, w jakim są przechowywane typy geometry i geography jest innym formatem niż format Well-Known Binary, którego można użyć do reprezentacji danych tych typów?

KK:

  1. Wydajność – nasz format niemal dokładnie odwzorowuje strukutrę obiektów w pamięci, dzięki czemu serializacja i deserializacja są po prostu o wiele szybsze
  2. Elastyczność – własny format pozwala nam rozwijać naszą funkcjonalnośc w dowolnym kierunku, nieograniczonym przez well-known format
  3. Usprawnienia – dzięki własnemu formatowi możemy zawrzeć w formacie na dysku informacje, które nie są opisane przez oficjalny well-known format, a które mogłyby poprawić wydajność lub niezawodność naszych typów przestrzennych

PP:

Ad.1. To rozumiem, choć przydałoby się upublicznić algorytmy wykorzystane, by to osiągnąć. Inaczej ludzie będą ciągle pytać, dlaczego jest tak, a nie inaczej.

Ad.2. Ta tendencja nie jest w MS niczym nowym :-) Można dojść do wniosku, że ludzie z MS (R&D?) są mądrzejsi od ludzi z organizacji standaryzujących ;-)

Ad.3. Przydałoby się więcej detali, jak ten format ma się do WKB (o ile się jakkolwiek ma) i co więcej w nim się znajduje (i w jaki sposób ów format lepiej działa od standardowych formatów).

---

Trzecie pytanie doczekało się już wcześniej odpowiedzi (że parametry tablicowe w przyszłości być może nie będą READONLY). Dziękuję Krzysztofowi, że zechciał poświęcić sporo swojego czasu na udzielenie odpowiedzi na powyższe pytania. To może nie są kluczowe zagadnienia czy problemy, jakie każdego dnia napotykamy w pracy z SQL Serverem, ale takie rzeczy po prostu dobrze wiedzieć. I dobrze wiedzieć, że w razie czego są ludzie w MS, którzy mogą nam na takie pytania odpowiedzieć.

Na koniec małe sprostowanie – napisałem w poprzedniej notce, że Krzysiek obiecał wrzucić jeden z bugów na jakąś tajemną listę (chyba zmęczenie wzięło górę, bo Krzysiek się źle wyraził, a ja dodatkowo go źle zrozumiałem). Otóż, Program Manager niestety nie ma żadnego wpływu na priorytety zespołów programistycznych. No cóż, przynajmniej Krzysztof pogadał z programistami i upewnił się, że rozumieją na czym polega problem i dlaczego jest dla nas ważny. A to już coś.

Opublikowane 4 listopada 2008 07:52 przez brejk

Komentarze:

# re: [PL] Nowe typy danych w SQL Server 2008 na MTS 2008 – c.d.

5 listopada 2008 12:20 by damian_widera

Dobra robota Brejk. Przekonuje mnie tłumaczenie odnośnie typu geometrycznego, ale niespecjalnie odnośnie datetime2.

Komentarze anonimowe wyłączone

About brejk

MVP, MCT, SQL Server geek