Archiwum dla kategorii ‘SQL’

Kiedy defragmentować indeks? (DBCC REORGANIZE i DBCC REBUILD)

2012-03-14

Kiedy defragmentować indeks, to jedno z najczęstszych pytań na szkoleniach. Tutaj nie tłumaczę, jak jest zbudowany indeks, ani na czym polega defragmentacja. Nie wyjaśnię nawet składni polecenia DBCC REORGANIZE ani DBCC REBUILD. Powtórzę jednak za blogiem Paula Randal wartości przy których należy uruchomić odpowiednie polecenia. Przyznam, że szczera odpowiedź na pytanie „Kiedy mam uruchomić REBUILD, a […]

By Rafał Kraik in SQL

Aktualny certyfikat = Aktualna wiedza. Egzaminy z SQL Server 2012

2012-03-13

Ciągle zmieniają się technologie. Co z tego, że znasz SQL w wersji 2000/2005/2008 i twoja firma go używa. Jeśli osiądziesz na laurach i zamkniesz się w tej znanej ci technologii, a ktoś podejmie decyzję o przejściu na SQL 2012, to okaże się, że twoje umiejętności są marne! Chcąc być na topie,przygotowanym do nowych wdrożeń, albo […]

Czy mam problem z wydajnością dysku?

2012-03-06

Funkcja systemowa  fn_virtualfilestats pokaże wiele ciekawych informacji o tym jak bardzo jest używany plik bazy danych: SELECT * FROM fn_virtualfilestats(DB_ID(’AdventureWorks2008R2′), NULL)  Przydatne są oczywiście kolumny: Bytes on disk Number Reads / Bytes Read Number Writes / Bytes Written Kolumna IO Stall Read MS mówi o tym ile w sumie czasu trzeba było czekać na wykonanie […]

Rozmiar plików bazy danych (w tym rozmiar loga transakcyjnego)

2012-03-06

  Szukałem polecenia pokazującego rozmiar loga transakcyjnego. Oto ono: SELECT DB_NAME(database_id) AS DatabaseName, Name AS Logical_Name, Physical_Name, (size*8)/1024 SizeMB FROM sys.master_files WHERE DB_NAME(database_id) = 'AdventureWorks2008R2′ Zapytanie pochodzi z http://blog.sqlauthority.com/2010/02/08/sql-server-find-the-size-of-database-file-find-the-size-of-log-file/

By Rafał Kraik in SQL

Najstarsza aktywna transakcja

2012-03-06

Podczas wykonywania loga transakcyjnego liczysz na to, że zwolni się miejsce w logu na kolejne transakcje. TO prawda, ale… zwalniane jest miejsce tylko z tych częśi loga transakcyjnego, które nie są w danej chwili aktywne, to znaczy nie zawierają ani jednej aktywnej transakcji. Tymczasem może się zdarzyć, że gdzieś w logu „wisi” zapomniana przez użytkownika […]

By Rafał Kraik in SQL

Rzut okiem w log transakcyjny

2012-03-06

Log transakcyjny składa się z Virtual Log Files. Podobnie jak właściwa baza danych składa się ze stron i extentów, tak log transakcyjny składa się z VLF. Zaraz po utworzeniu bazy danych (i loga) można sprawdzić ile i jakich VLF zostało utworzonych: CREATE DATABASE x ALTER DATABASE x SET RECOVERY FULL DBCC LOGINFO (x) W tym przypadku plik […]

By Rafał Kraik in SQL

Przykład SQL Injection. Jak się zabezpieczyć przed SQL Injection?

2012-03-03

Na atak SQL Injection narażone są programy, w których programista zdecydował się „sklejać” zapytania z fragmentów instrukcji SQL wpisanych przez programistę z fragmentami tekstu wpisywanymi przez użytkowników. Takie zapytanie, powstałe wskutek złączenia kodu programisty są następnie uruchamiane jako tzw. dynamiczny SQL. O ile w przypadku gdy użytkownik podaje „normalne” dane, zapytanie będzie działać zgodnie z […]

By Rafał Kraik in SQL