Dawno, dawno temu dowiedziałem się z bloga Tibora Karasziego (SQL Server MVP), że optymalizator może wykorzystać obiekty constraint, takie jak CHECK czy FOREIGN KEY (klucz obcy) do optymalizacji określonych klas zapytań. Jakiś czas temu próbowałem pokazać koledze z firmy, jak to działa i przy okazji dowiedziałem się ciekawej rzeczy, na którą dotąd nie natrafił...
Bazy danych i XML 3597 dni, 3 godziny, 34 minuty temu 166 źrodło rozwiń
SQL Server posiada kilka mechanizmów umożliwiających przechowywanie dużej ilości danych np. plików graficznych. FileStream Pierwszych z nich jest FILESTREAM. Przed pojawieniem się typu FILESTREAM, programiści najczęściej zapisywali pliki sami na dysku a lokalizacje przechowali w bazie danych. Rozwiązanie dobre jednak kłopoty powstały w momencie synchronizacji – co jeśli ktoś usunie jakiś plik z dysku? FILESTREAM to nic innego jak zapisanie pliku w bazie danych. W przeciwieństwie do typu varbinary, FILEST...
Bazy danych i XML 3599 dni, 5 godzin, 46 minut temu 148 źrodło rozwiń
Jakiś czas temu, ku mojemu zaskoczeniu, udało mi się zdać egzamin 88-970 (SQL Server 2008 Microsoft Certified Master Knowledge Exam). To był bardzo trudny egzamin i moja satysfakcja ze zdania go była naprawdę duża. Pierwszy krok do tytułu Microsoft Certified Master (MCM) został postawiony :-) Idąc za ciosem podszedłem wczoraj do egzaminu 88-971 (SQL Server 2008 ...
Bazy danych i XML 3610 dni, 17 godzin, 5 minut temu 202 źrodło rozwiń
Wykorzystanie Automappera ma swoje uzasadnienie i często-gęsto można je uznać za "kod pożądany". Pomimo swych zalet ma jednak również wady. Jedną z nich są z pewnością dość długaśne instrukcje wykonujące mapowanie: 1: var mapped = Mapper.Map, IEnumerable>(source);
Bazy danych i XML 3630 dni, 1 godzinę, 56 minut temu 119 źrodło rozwiń
Autor: Dość dawno już temu pokazałem jak można użyć Automapper do mapowania kolekcji bez powodowania ciągnięcia ich zawartości z bazy: "AutoMapper, NHibernate, lazy loading oraz problem select n+1". Dzisiaj wrócę na chwilę do tematu Automappera i NH.
Bazy danych i XML 3638 dni, 6 godzin, 7 minut temu 159 źrodło rozwiń
W zeszłym tygodniu podjąłem próbę zaprzęgnięcia Resource Governora (dalej zwanego RG) w służbie moim potrzebom administracyjnym. Konkretnie, chodziło o to, by dla dobrze określonego zbioru kroków z zadań (jobów) SQL Server Agenta narzucać odpowiedni MAXDOP. Zacząłem od zbadania, czy w ogóle jest o co walczyć – to znaczy, czy jestem w stanie ...
Bazy danych i XML 3640 dni, 10 godzin, 38 minut temu 51 źrodło rozwiń
« [PL] SQL Server dla DBA – sys.dmosperformancecounters[PL] Materiały z sesji o XML z 53. spotkania PLSSUG WarszawaVN:F [1.7.91023]please wait…Rating: 0.0/5 (0 votes cast) W czwartek, 7 kwietnia, Paweł Skolimowski poprowadził prezentację pt. “Niechaj Cię nie onieśmiela gąszcz misterny XML-a” w ramach 53. spotkania Polskiej Grupy Użytkowników SQL Server (PLSSUG). Prezentacja wypadła, moim zdaniem, znakomicie. Paweł przygotował profesjonalne slajdy (zmieniające się jak w kalejdoskopie kolorowanie składn...
Bazy danych i XML 3647 dni, 5 godzin, 59 minut temu 72 źrodło rozwiń
Optymalizacja procedur składowanych czy zwykłych zapytań do bazy danych nie jest zadaniem wdzięcznym, ale potrafi dać bardzo wiele satysfakcji. Kto doświadczył zoptymalizowania działania jakiegoś potworka w taki sposób, że po pół godziny pracy czas wykonania spada z 2 minut do 1 sekundy, wie doskonale o czym mówię. A jak uda się tego dokonać bez grzebania się w indeksach to już w ogóle cud/miód/itd. Wtedy z kolei ten, kto to zapytanie pisał oryginalnie, zasługuje na siarczystego liścia... ale akurat w mo...
Bazy danych i XML 3663 dni, 12 godzin, 16 minut temu 133 źrodło rozwiń
Klauzula GROUP BY służy do uzyskiwania szczegółowych danych na grupach wierszy takich jakilośćminimummaksimumsumaśrednia Przykładowa składania na naszych danych:SELECT Nazwisko, COUNT(Nazwisko) AS Ilość FROM Osoba GROUP BY Nazwisko Powyższe zapytanie zwróci ilość wystąpień konkretnego nazwiska w naszej tabeli Innym przykładem użycia może być na przykład wskazanie COUNT, GROUP BY, tsql
Bazy danych i XML 3663 dni, 12 godzin, 16 minut temu 83 źrodło rozwiń
W poprzednim poście przybliżyłem nieco ideę zamieszczania w kodzie .NET transakcji. W tej odsłonie postaram się skupić na zagadnieniach nieco bardziej praktycznych. Z góry zapowiadam, że ze względu na ilość materiału ukaże się co najmniej jeszcze jedna odsłona. Jeśli chodzi o transakcje w ADO.NET, uwagę należy tutaj skupić na klasie SqlTransaction. Transakcję ropoczynamy wywołując na obiekcie SqlConnection metodę BeginTransa...
Bazy danych i XML 3667 dni, 5 godzin, 37 minut temu 128 źrodło rozwiń
autor: W nawiązaniu do mojego poprzedniego wpisu na blogu muszę niestety zlożyć małe sprostowanie. Tak zachwalałem zalety umieszczania serwisu na serwerze IIS, że uciekło mi to, że niestety z pomocą Visual Web Developer 2010 Express nie jest możliwe w tym przypadku debugowanie kodu. Wersja ta nie posiada bowiem bardzo ważnej opcji, jaką jest “Atach to process…”. Być może debugowanie z użyciem IIS tym razem w wersji Expres...
Bazy danych i XML 3667 dni, 11 godzin, 2 minuty temu 124 źrodło rozwiń
Światy: obiektowy i relacyjny nie pasują do siebie. Dlatego tak popularne są mappery obiektowo-relacyjne, dzięki którym życie staje się łatwiejsze. Ale jaki mapper wybrać?
Bazy danych i XML 3675 dni, 2 godziny, 19 minut temu 199 źrodło rozwiń
Witam pod długiej przerwie, dzięki za maile i pytania. Cieszę się, że blog ma aż takie zainteresowanie. Dzisiaj omówię banalnie prostą, ale często bardzo przydatną pod czas pisania zapytań klauzulę DISTINCT. Ma ona na celu wyeliminowanie z wyniku zapytania zdublowanych wierszy. Nie jest ważne czy wiersz składa się z jednego, czy więcej pól. Po prostu usuwa duble. Przykład użycia bez klauzuli DISTINCT: SELECT Nazwisko FROM NowaBaza.dbo.Osoba W wyniku pojawi się dwa razy nazwisko Czajka, Nowak oraz No...
Bazy danych i XML 3681 dni, 2 godziny, 16 minut temu 146 źrodło rozwiń
autor: Ostatnio, podczas pracy z Unity 2.0 postanowiłem zaszaleć. Zamiast pisać klasę Bootstrapper’a i mapować implementacje na interfejsy w kodzie programu, zapragnąłem skonfigurować Unity przy pomocy pliku App.config. Dla niezorientowanych. Unity to kontener IoC od Microsoftu dostarczany razem z Enterprise Library. Proces konfiguracji Unity jest w miarę prosty. Ogranicza się do zdefiniowania aliasów, czyli skróconych nazw interfej...
Bazy danych i XML 3691 dni, 6 godzin, 15 minut temu 110 źrodło rozwiń
SQL Server Management Objects (SMO) zbiór bibliotek, a w nich klas dla platformy .NET, pozwalające na łatwe i proste zarządzanie bazą danych Microsoft SQL Server z poziomu kodu programu .NET (np. w językach takich jak C#, VB i innych). Zostały one wprowadzone po raz pierwszy z bazą danych Microsoft SQL Server 2005 (włącznie z wersją Express). Dostępne są również biblioteki SMO dla bazy danych MS SQL 2008. Dzięki wykorzystaniu SMO, można opracowywać aplikacji o funkcjonalności podobnej do Microsoft SQL ...
Bazy danych i XML 3691 dni, 22 godziny, 28 minut temu 43 źrodło rozwiń
Dzięki wykorzystaniu SMO (jeśli nie wiesz co to – przeczytaj wpis pt.:"Jak DataSet’a przenieść do MsSQL'a? (SQLServer Management Objects i SqlBulkCopy)") można w prosty sposób wykonywać wiele operacji na bazie danych Ms SQL. Jedną z takich operacji może być usuwanie elementów bazy danych. W większości przypadków wystarczy na wybranym elemencie z bazy danych wykonać proste Drop, jednak nie zawsze musi się to udać.Taki przypadek może mieć właśnie miejsce z tabelami. Załóżmy, że chcemy usunąć wybraną tabelę...
Bazy danych i XML 3701 dni, 6 godzin, 15 minut temu 26 źrodło rozwiń
W VS 2010 możemy dodać Local Database do naszego projektu... Gdybyśmy teraz chcieli ją wykorzystać z poziomu SQL Server CE 4.0 to najprawdopodobniej dostaniemy taki o to błąd: The database file has been created by an earlier version of SQL Server Compact. Please upgrade using SqlCeEngine.Upgrade() method. Jest to spowodowane tym, iż dopiero VS 2010 SP1 będzie wspierał CE w wersji 4.0.
Bazy danych i XML 3701 dni, 6 godzin, 47 minut temu 87 źrodło rozwiń
Autor: We wpisie pt.: "Jak DataSet’a przenieść do MsSQL'a? (SQLServer Management Objects i SqlBulkCopy)" przedstawiłem, jak można na podstawie DataSet'a stworzyć odpowiadającą mu bazę danych. Niestety nie wszystko zostało tam opisane i wykonane prawidłowo, o czym pisałem już we wpisie „Klucze obce, a relacje w DataSet'cie”. Kolejnym elementem, który wymaga dodania są ograniczenia (Constrains), a w szczególności ten wymuszający unikalność UniqueConstraint.Otóż tabela w DataSet'cie przechowuje informacje ...
Bazy danych i XML 3702 dni, 16 godzin, 51 minut temu 37 źrodło rozwiń
We wpisie pt.: "Jak DataSet’a przenieść do MsSQL'a? (SQLServer Management Objects i SqlBulkCopy)" przedstawiłem, jak można na podstawie DataSet'a stworzyć odpowiadającą mu bazę danych. Niestety wkradł się tam pewien „brak”. Mianowicie część relacji pomiędzy tabelami zostało pominiętych – w wytworzonych tabelach nie zostały wykorzystane klucze obce. Otóż dla każdej tabeli (DataTable) w DataSet'cie dostępne są relacje typu dzieci (właściwość ChildRelations) i rodzice (właściwość ParentRelations). Relacje...
Bazy danych i XML 3704 dni, 16 godzin, 46 minut temu 66 źrodło rozwiń
Dzisiaj przedstawię kilka przykładów użycia jednego z najbardziej podstawowych poleceń języka T-SQL czyli SELECT. Zakładam, że wykonaliście polecenia z poprzednich wpisów, ponieważ dzisiaj na ich wyniku będziemy działać. Otwieramy nowe zapytanie w SSMS – New Query i piszemy USE NowaBaza GO SELECT * FROM Osoba Uzyskamy w ten sposób całą zawartość naszej tabeli Osoba. (Po wciśnięciu Execute lub F5) Klauzula WHERE Jeżeli chcemy zaś ograniczyć zwrócone wiersze o pewien warunek dopisujemy klauzulę WHERE...
Bazy danych i XML 3708 dni, 22 godziny, 31 minut temu 58 źrodło rozwiń