Archive for February, 2009

T-SQL Random – HOW TO

Jakiś czas temu przyszło mi się zmierzyć z zadaniem wybrania losowych wierszy z tabeli pobranej z bazy MS SQL. Z racji na to, że nigdy wcześniej tego nie robiłem, zacząłem poszukiwania. Wykorzystanie w tym celu operacji na danych po stronie C# wydaje się absurdalną sprawą z racji na konieczność przekazania całej tabeli do logiki losującej to raz, a dwa C# działałby wolniej niż T-SQL na tabelach. Pora przeszukać sieć – udało mi się znaleźć kilka dyskusji traktujących o tym temacie – różne też były rozwiązania, jednakże jedno z nich okazało się strzałem w dziesiątkę. Przedstawia się ono następująco:

SELECT Kolumna1, [Kolumna2,…]

FROM NazwaTabeli

[WHERE warunek]

ORDER BY NEWID()

Proste w zrozumieniu i zastosowaniu rozwiązanie stało się lekarstwem na utrzymanie wydajności rozwiązania a także jego przejrzystości i spójności.

Żeby było ciekawiej, to w niedługim czasie okazało się, że przy realizowanym przeze mnie projekcie również jest wymagana podobna funkcjonalność z dużym naciskiem na wydajność (nieporównywalnie większym niż przy pierwszym projekcie). Na marginesie dodam, że pierwszym zadaniem w jakim przydatne mi było zastosowanie ORDER BY NEWID() była implementacja QUIZU będącego częścią konferencji Communities 2 Communities 2009.

Mam nadzieję, że ten post pomoże komuś, kto trafił na zadanie realizacji takiej funkcjonalności – jeżeli tak, to cel osiągnięty :)


Windows Live Writer – ograniczenia

W jednym z poprzednich postów pisałem o przenosinach swojego bloga (link). Problem polegał na tym, ze nawet pomimo ustawienia w Windows Live Writer daty wstecznej nie jest ona uwzględniana przy dodawaniu wpisu. Zgłosiłem ten fakt do pomocy technicznej MS. Po wymianie kilku emaili i dokładnym opisaniu problemu (step by step + screeny) dostałem odpowiedź, że nie jestem pierwszą osobą, która to zgłasza i że problem ten jest w trakcie rozwiązywania przez zespół projektowy. Ma to zostać poprawione w najbliższym czasie – nie wiem do końca ile to jest “najbliższy czas”, jednakże mam nadzieję, że nie będzie to długo :) Tak czy inaczej w wolnym czasie będę prawdopodobnie przenosił kolejne wpisy ze starego na nowy blog :) Teraz mam trochę mniej czasu – stąd ponowne uśpienie na stronie, gdyż biorę udział w organizowaniu konferencji C2C’09, a konkretniej jestem jedną z osób odpowiedzialnych za stworzenie QUIZU, który będzie dostępny przed konferencją. Dlatego też kończę i zabieram się ponownie do pracy.


  • O mnie

    Maciej Grabek

    Moje profile na:

    MVP

    Codeguru.pl GoldenLine
    Twitter CodeProject

  • english version
  • Polecam

  • Copyright © Maciej Grabek. All rights reserved.
    Powered by WordPress
    %d bloggers like this: