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 domyślne działanie można zmieniać poprzez TRANSACTION ISOLATION LEVEL.
Rozważmy taki przykład: Czytaj dalej »
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. Czytaj dalej »
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ę automatycznie od nowa jeżeli np. zmieni się struktura tabel, przeliczą się statystki lub cache zostanie wyczyszczony za pomocą polecenia:
Dbcc freeproccache Czytaj dalej »
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 im maksymalną dopuszczalną liczbę. Czytaj dalej »
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
HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer
Zjadziesz interesujące Cię informacje o wersji MDAC
U mnie wygląda to tak:

2011-03-07
W starszych Windowsach tego rodzaju rzeczy robiło się w Panelu sterowania w Opcjach folderów. Jednak w wersji Windows 7 aby określić jakim programem ma być domyślnie otwierany plik o danym rozszerzeniu należy użyć apletu „Programy domyślne”.
Czytaj dalej »
2011-03-06
Podczas masowego importu danych komendą BULK INSERT lub bcp lub innych operacji typu ETL indeksy tabel są na bieżąco aktualizowane. Oczywiście spowalnia to porces importu danych.
Indeksy można na czas importu wyłączyć, należy jednak pamiętać, aby po zakończeniu importu je na nowo przebudować.
Najpierw sprawdźmy jakie indeksy ma tabela HumanResources.Shift:
SELECT * FROM sys.indexes
WHERE object_id = OBJECT_ID('HumanResources.Shift') Czytaj dalej »