Poniższy rysunek zawiera fragment wykresu wygenerowanego przez SQL Server Reporting Services. Wykres ten przedstawia wartość pewnej miary (oś OY) dla różnych kategorii (oś OX). Mniejsza o jaką miarę i kategorię chodzi. Problem polega na tym, że etykiety posiadają tylko niektóre słupki, a nie wszystkie co czyni wykres bezużytecznym. Nie sposób bowiem wydedukować jakie kategorie zostały pokazane np.: pomiędzy JNZ i OR. Nie zastanawiając się długo postanowiłem, więc dodać etykiety dla wszystkich sł...
Bazy danych i XML 3699 dni, 9 godzin, 29 minut temu 32 źrodło rozwiń
SQL Server 2008 wprowadza widoki partycjonowane. Służą one do optymalizacji zapytań na bardzo dużej ilości danych. Rozważmy scenariusz w którym mamy 12 tabel, przechowujących archiwalne informację o sprzedaży np. JanuarySales, FebruarySales, MarchSales itd. Dane przechowywane w tych tabelach różnią się tylko czasem (dana tabela przechowuje wyłącznie informacje z określonego miesiąca). Aby móc skorzystać z widoku partycjonowanego należy użyć ograniczenia CHECK na kolumnie, będącej kryterium podziału:CREAT...
Bazy danych i XML 3702 dni, 3 godziny, 17 minut temu 37 źrodło rozwiń
Powershell to interpreter poleceń oferujący dużo większe możliwości niż popularny CMD. Jedną z wyróżniających cech PowerShell’a jest logika obiektowa. Wszystkie produkty serwerowe Microsoft’u mogą być obsługiwane z poziomu PowerShell’a można zatem pisać np. skrypty konfiguracyjne. SQL Server nie jest oczywiście wyjątkiem i również wspiera PS. SQL Server PowerShell wykorzystuje hierarchię obiektów – tabela należy do schematu, schemat do bazy itd. W ramach SQL Server PS dostępne są trzy foldery:SQLSERVER:\...
Bazy danych i XML 3709 dni, 14 godzin, 2 minuty temu 35 źrodło rozwiń
Dotychczas wydawało się, że rozwiązaniem wszystkich problemów tego świata jest Cloud Computing. Niestety, gdy już przeniesiono do chmury wszystko co tylko się dało (oraz kilka rzeczy, których się nie dało) okazało się, że część problemów pozostała nierozwiązana. Tak oto nastała moda na NoSQL. Chyba każda rozsądnie myśląca osoba przyzna, że relacyjne bazy danych są takie wczorajsze, a nowe czasy wymagają nowych rozwiązań. Czy aby jednak na pewno? Bawiąc się trochę BigTable na Google AppEngine mam pewne wą...
Bazy danych i XML 3711 dni, 3 godziny, 18 minut temu 162 źrodło rozwiń
Baza MySQL ma wiele mechanizmów (silników) zarządzania danymi – obecnie jednym najczęściej używanych jest MyISAM. Jego cechą charakterystyczną jest to, że kolejne rekordy doklejane są zawsze na końcu pliku. Tak zdefiniowana struktura bazy niesie wiele korzyści, m.in. dodawanie informacji jest bardzo szybkie, ponieważ nie trzeba szukać miejsca dla nowego obiektu.
Bazy danych i XML 3711 dni, 14 godzin, 8 minut temu 47 źrodło rozwiń
Microsoft udostępnił pierwszą wersję (build 11.0.1103) Community Preview (CTP) następnej wersji systemu zarządzania bazami danych SQL Server. Nowa wersja nosi nazwę kodową Denali i najpewniej otrzyma numer 2011 (a co za tym idzie, niewykluczone, że wersja RTM ujrzy światło dzienne w przyszłym roku...
Bazy danych i XML 3713 dni, 15 godzin, 33 minuty temu 51 źrodło rozwiń
Po badaniu SQL Server “Denali” CTP1 pod kątem nowości w SQL Server Management Studio przyszedł czas na eksplorację nowinek w T-SQL / programowaniu. Poniżej to, co wyczytałem w dokumentacji lub samemu “namacałem” bawiąc się CTP1: Nowe DMVs: sys.dm_db_objects_disabled_on_compatibility_level_change sys.dm_db_uncontained_entitiessys...
Bazy danych i XML 3713 dni, 15 godzin, 33 minuty temu 36 źrodło rozwiń
Część osób wykorzystuje jako klucze główne typ uniqueidentifier zamiast standardowych liczb całkowitych. Ma to związek m.in. z rozproszonymi bazami danych oraz ich scalaniem. Jeśli wykorzystujemy uniqueidentifier jako klucz główny warto ustawić atrybut ROWGUIDCOL na TRUE. Powoduje to, że wartości kluczy będą automatycznie wypełniane unikalnymi wartościami. ROWGUIDCOL działa w podobny sposób co IDENTITY dla liczb całkowitych. Warto jednak podkreślić, że ROWGUIDCOL nie gwarantuje unikalności – jeśli wstawi...
Bazy danych i XML 3714 dni, 16 godzin, 3 minuty temu 41 źrodło rozwiń
Jak sprawnie i szybko przekopiować dane z tabeli do tabeli? Można wykorzystać klasę SqlBulkCopy, która jest znacznie lepszym rozwiązaniem niż użycie klasycznego SqlCommand z poleceniem INSERT. Załóżmy, że chcemy przekopiować dane z tabeli o nazwie “Adresy” do tabeli “Adresy_Archiwum”:using (SqlConnection sourceConnection =new SqlConnection(connectionString)) { sourceConnection.Open(); SqlCommand commandSourceData =new SqlCommand( "SELECT * FROM Adresy", sourceConnection); SqlDataReader reader ...
Bazy danych i XML 3719 dni, 10 godzin, 1 minutę temu 66 źrodło rozwiń
Testy bazy danych gwarantują nam m.in. spójną strukturę, poprawność procedur i funkcji. Wszystkich zainteresowanych tą tematyką zapraszam do przeczytania mojego artykułu: http://msdn.microsoft.com/pl-pl/library/gg314942Explore posts in the same categories:Testy
Bazy danych i XML 3727 dni, 13 godzin, 51 minut temu 46 źrodło rozwiń
Kolejnym i ostatnim sposobem numeracji wierszy jest NTILE(n). NTILE dzieli zbiór wierszy na n podgrup. Każda z podgrup jest numerowana osobno. Przykład:select NTILE(5) over(orderBY ProductSubCategoryID),ProductSubcategoryID from Production.Product; W powyższym przykładzie powstanie 5 grup – każda numerowana od 1.November 2nd, 2010 at 3:47 pm and is filed under SQL Server. You can subscribe v...
Bazy danych i XML 3728 dni, 3 godziny, 43 minuty temu 37 źrodło rozwiń
autor: Potrzebowałem banalnie prostego narzędzia, które byłoby pomocne w testowaniu zapytań XPath. Po krótkich poszukiwaniach i odnalezieniu kilku kombajnów stwierdziłem, że nawet dla wprawy szybciej stworzę odpowiednie narzędzie, spełniające moje wymagania ;) Dzielę się więc minimalistycznym, intuicyjnym w użyciu programem. Ascetyczny interfejs i funkcjonalność. Nie ma kolorowania, animacji ani miliona wielce-potrzebnych-funkcji.
Bazy danych i XML 3728 dni, 3 godziny, 43 minuty temu 61 źrodło rozwiń
Na wstępie chciałem wyjaśnić, że skrót SMS nie ma nic wspólnego z telefonami komórkowymi, tylko jest to skrót od SQL Management Studio. Dla osób korzystających na co dzień z SQL Server nie muszę wyjaśniać, do czego to narzędzie służy, natomiast dla początkujących znajdzie się kilka porad (niekoniecznie przydatnych). Przede wszystkim, w nawiązaniu do poprzednich postów, znajdujemy się w miejscu, w którym utworzon...
Bazy danych i XML 3736 dni, 20 godzin, 53 minuty temu 33 źrodło rozwiń
W poprzednim poście zajęliśmy się funkcją RANK. Dla przypomnienia umożliwia ona numerację wierszy z rozróżnieniem wartości. Dla dokładnego opisu odsyłam tutaj. Jedną z cech RANK jest fakt, że w przypadku remisów (takich samych wartości) licznik wewnętrzny jest zwiększany, czego rezultatem są przerwy w numeracji. W przypadku DENSERANK opisane przerwy nie istnieją. Rozważmy poniższe zapytanie:select DENSERANK() over(orderBY ProductSubCategoryID),ProductSubcategoryID from Production.Product; Możliwy wyni...
Bazy danych i XML 3736 dni, 20 godzin, 53 minuty temu 26 źrodło rozwiń
Jakiś czas temu na forum portalu WSS.pl padło pytanie, czy można przenieść konfigurację usługi Database Mail na SQL Server 2005 / 2008 / 2008 R2. Odpowiedziałem wówczas, że pewnie można to zrobić skryptując dane z tabel w bazie msdb. Postanowiłem, że napiszę kod do takiego skryptowania. Oto on:set nocount on; print'-- * Enabling DBMail * '; prin...
Bazy danych i XML 3739 dni, 6 godzin, 31 minut temu 9 źrodło rozwiń
W poprzednim poście przedstawiłem funkcję ROW_NUMBER. RANK działa analogicznie z tym, że wierszom o tej samej wartości nadawane są takie same liczby porządkowe. Rozważmy poniższe zapytanie:select RANK() over(orderBY ProductSubCategoryID),ProductSubcategoryID from Production.Product; Wiersze o takim samym ProductSubCategoryId otrzymają równe wartości a nie kolejne liczby jak w przypadku ROW_NUMBER. Przykładowo zwrócone wiersze: RANKProductSubCategoryId151515464646 Warto zwrócić uwagę, że RANK nie zw...
Bazy danych i XML 3742 dni, 8 godzin, 7 minut temu 29 źrodło rozwiń
Czasami wykonując zapytania T-SQL potrzebujemy ponumerować wiersze. Baza SQL Server dostarcza nam kilka różnych funkcji. Podstawową funkcją jest ROWNUMBER, która zwraca dla danego zbioru wartości od 1 do n. W przypadku gdy dwa zwrócone wiersze zawierają identyczne dane, ROWNUMBER traktuje je jako różne i nadaje im kolejne numery. Przykład:select ROW_NUMBER() over(orderBY NAME),ProductSubcategoryID from Production.Product; W klauzuli over określa się m.in. sortowanie. Za pomocą tego ROW_NUMBER wie, jak...
Bazy danych i XML 3745 dni, 15 godzin, 3 minuty temu 51 źrodło rozwiń
W SQLite używam autoinkrementacji wartości kluczy głównych w tabelach. Domyślnie wygenerowany model przez generatora Entity Framework nie uwzględniał tego faktu. Próba wstawienia nowego rekordu do tabeli zakończy się po prostu błędem, ponieważ Entity Framework będzie chciał wstawić jakąś wartość. W celu naprawienia tej sytuacji musiałem w designerze ustawić pole StoreGeneratedPattern na Identity: D...
Bazy danych i XML 3746 dni, 6 godzin, 48 minut temu 57 źrodło rozwiń
W wielu DDL można ustawiać atrybut SCHEMABINDING. Do czego on służy? Ustawienie SCHEMABINDING powoduje, że dany obiekt (widok, funkcja itp.) jest powiązany z wszystkimi innymi obiektami do których się odwołuje. Jeśli zatem widok korzysta z jakieś tabeli to nie może zostać ona zmieniona lub usunięta ponieważ naruszyłoby to strukturę widoku. Użycie SCHEMABINDING jest sztywnym powiązaniem i zapobiega przypadkowemu usunięcia powiązanych obiektów.Explore posts in the same categories:SQL Server ...
Bazy danych i XML 3746 dni, 20 godzin, 26 minut temu 36 źrodło rozwiń
Obecnie do składowania danych wykorzystuję pliki XML. Generyczna klasa abstrakcyjna AbstractDataAccess zajmuje się serializacją i deserializacją odpowiednich danych. Postanowiłem jednak wykorzystać Entity Framework w połączeniu z SQLite do składowania danych. Głównie dlatego, że wolę skorzystać z gotowego mechanizmu zapisu/odczytu niż dalej rozwijać coś własnego. Z Entity Framework miałem już do czynienia podczas pracy inżynier...
Bazy danych i XML 3746 dni, 20 godzin, 26 minut temu 153 źrodło rozwiń