Archiwum za miesiąc 2011-03

ALTER TABLE i SET LOCK_ESCALATION

2011-03-20

Aparat bazy danych blokując dane dla transakcji może to robić z dokładnością do rekordu, strony, partycji, tabeli. Opcja  LOCK_ESCALATION określa jak ma się odbywać eskalacja blokad na poziom tabeli, gdy tabela jest partycjonowana.

By Rafał Kraik in SQL

Opcja set XACT_ABORT ON lub OFF

2011-03-20

Czy zastanawiałeś się kiedyś, co się stanie, jeżeli wykonując ciąg instrukcji w ramach transakcji doprowadzisz do błędu? Czy transakcja się wykona opuszczając tę pojedynczą nieudaną instrukcję, czy też wycofa wszystkie operacje wykonywane w ramach transakcji? Reguluje to opcja XACT_ABORT.

By Rafał Kraik in SQL

Jak działa TRANSACTION ISOLATION LEVEL SERIALIZABLE?

2011-03-13

W normalnych warunkach, czyli z ustawieniami domyślnymi każdy zapis nakłada na czas transakcji blokadę EXCLUSIVE czyli na wyłączność. Odczyty natomiast nakładają tzw. SHARE LOCK, czyli blokadę dzieloną. Na danym rekordzie może istnieć kilka SHARE LOCK, ale tylko jeden EXCLUSIVE LOCK. Jeżeli rekord ma nałożoną blokadę EXCLUSIVE, to nie można nałożyć na niego blokady SHARED. Takie […]

By Rafał Kraik in SQL

Table hint: TABLOCKX, HOLDLOCK, READPAST

2011-03-12

Jeżeli zamierzasz wykonać procedurę składowaną pobierającą określone dane z jednej chwili, nie dopuszczając takiej opcji, że podczas wykonywania procedury ktoś dopisał/usunął czy też zmienił jakiś rekord możesz posłużyć się table hint TABLOCKX.

By Rafał Kraik in SQL

Cache procedur. Rekompilacja zapytań, procedur. Query Hint RECOMPILE

2011-03-12

Ważną cechą optymalizacji zapytań w SQL Server jest to, że raz przygotowany plan wykonania (execution plan) jest zapisywany w cache procedur. Kiedy po raz kolejny użytkownik uruchomi takie samo zapytanie, SQL serwer nie tworzy nowego planu zapytań, ale realizuje stary zapamiętany plan. Oczywiście zdarzają się sytuacje kiedy plan trzeba utworzyć od nowa. Plan utworzy się […]

By Rafał Kraik in SQL

Query hint MAXDOP. Opcja serwera 'max degree of parallelism’. Wykorzystanie wielu procesorów w zapytaniu.

2011-03-10

Oczywiście do wykonywania zapytań konieczna jest praca procesora… Miło by też było gdyby podczas wykonywania zapytań serwer rzeczywiście wykorzystywał kilka procesorów na raz! Reguluje tym parametr ‘max degree of parallelism’. Jest to wartość całkowita, która mówi ile procesorów jednocześnie może maksymalnie wykonywać jedno zapytanie. Nie regulujesz nim ile procesorów rzeczywiście wykona zapytanie, a jedynie określasz […]

By Rafał Kraik in SQL

Jak sprawdzić numer zainstalowanej wersji MDAC?

2011-03-09

MDAC (Microsoft Data Access Components) to zbiór komponentów wydawanych przez Microsoft umożliwiający dostęp do danych.  Niektóre programy mają specyficzne wymogi dotyczące tej biblioteki. Pojawia się wtedy pytanie „jaka wersja MDAC jest teraz zainstalowana”? Zgodnie z opisem na http://support.microsoft.com/kb/301202 można do tego użyć programu Component Checker, albo, co wydaje się o wiele prostsze zajrzeć do rejestru! Pod kluczem […]