Archiwum za miesiąc 2011-05

Funkcja rankująca ROW_NUMBER – stronicowanie danych

2011-05-30

Przyjrzymy się funkcji rankującej ROW_NUMBER. Ta funkcja „nadaje” rekordom numery kolejne, które są nadawane wg określonej kolejności. Zobaczmy następujące zapytanie: SELECT ProductID ,ProductNumber ,Color ,ListPrice FROM SalesLT.Product ORDER BY Color, ListPrice, ProductID W wyniku otrzymujemy uporządkowaną listę produktów. Dzięki temu, że sortując określiłeś klucz sortowania z dokładnością do ProductID, każdy rekord ma tu swoje jednoznacznie […]

By Rafał Kraik in SQL

Problemy z optmalizacją procedur składowanych w SQL (Opcja WITH RECOMPILE)

2011-05-27

Każde zapytanie realizowane przez SQL serwer podlega procesowi optymalizacji. Serwer ‘wymyśla sobie’ kilka sposobów z pomocą, których może dostać się do właściwych rekordów i zwrócić je klientom. Optymalizowane są zapytania, praktycznie za każdym razem, kiedy są uruchamiane, no chyba, że uda się je sparametryzować. Podobnie optymalizowane są procedury. Z tym, że tu można natknąć się […]

By Rafał Kraik in SQL

Jak wykonać kopię na SQL Express, bo nie ma SQL Server Agenta?

2011-05-25

Mail od klienta: Pojawił się inny problem. Wersja mojego sql servera 2008 to wersja Express i nie mogę uruchomić sql server agenta :). Jak zrobić cykliczny backup na wersji Express. Chciałbym uzyskać taki efekt aby full backup wykonywał się w każdy wtorek.

By Rafał Kraik in SQL

SQL – problem z uprawnieniami

2011-05-25

Mail od klienta: Dostałem bazę danych i muszę przygotować raporty. Tylko problem mam już na wstępie gdyż nie mogę się do tej bazy dostać. Jestem dodany jako administrator lokalny serwera. Komunikat o błedzie: The server principal ‚…’ is not able to access the database ‚…’ under the current security context (Microsoft SQL Server, Error:916)

Typy daty i czasu w SQL Server 2008

2011-05-19

Serwer SQL w wersji 2008 oferuje tyle typów związanych z czasem! Date, Time, stary, poczciwy DateTime, DateTime2, DateTimeOffset i wreszcie SmallDateTime. Uff dużo tego. Zacznijmy od zobaczenia tych typów w akcji: SELECT CAST(SYSDATETIME() AS DATE) SELECT CAST(SYSDATETIME() AS TIME) SELECT CAST(SYSDATETIME() AS DATETIME) SELECT CAST(SYSDATETIME() AS DATETIME2) SELECT CAST(SYSDATETIME() AS DATETIMEOFFSET) SELECT CAST(SYSDATETIME() AS SMALLDATETIME)

By Rafał Kraik in SQL

Dlaczego nie używać typu float i real?

2011-05-13

SQL oferuje użytkownikom typy danych real i float. Oferują one bardzo dużą dokładność oraz możliwość zapisania w bazie danych bardzo dużych liczb. Zgodnie z informacją z Books Online: Data type Range Storage float – 1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308 Depends on the value of n real – 3.40E + 38 to -1.18E […]

By Rafał Kraik in SQL

Porównanie typów INT

2011-05-09

Konstruując tabele, wprowadzając do nich jakieś wartości liczbowe często bezmyślnie wybieram typ INT. Dlaczego? Bo mało z tym typem problemów. Z jednej strony SQL serwer dobrze sobie z tym typem radzi, buduje wydajne indeksy, nie zajmuje zbyt wiele miejsca w pamięci, a z drugiej strony jeszcze mi się nie zdarzyło, żeby liczba wpisywana w dane […]

By Rafał Kraik in SQL