http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja9a

background image

Procedury

składowane

background image

Przegląd zagadnień

Czym są procedury składowane
Praca z procedurami składowanymi
Zalety i wady procedur składowanych
Podsumowanie
Laboratorium

background image

Czym są procedury składowane

Procedura składowana (ang. stored procedure) jest

nazwanym zbiorem zapytań w języku SQL, który jest

przechowywany na serwerze (w SZBD) i jest kompilowany

przy pierwszym wykonaniu.
Procedury wnoszą do środowiska serwera baz danych

przetwarzanie warunkowe i możliwości programistyczne.
W SZBD wykonanie dowolnego fragmentu kodu języka SQL

wiąże się z pewnym ciągiem procesów - począwszy od

sprawdzenia składni aż do kompilacji i wykonania.

background image

Czym są procedury składowane

Proces wykonania zapytania SQL
Wykonywanie procedur składowanych
Rekompilacja procedur składowanych

background image

Czym są procedury składowane

Jak odbywa się wykonanie pojedynczego zapytania w języku Transact-SQL w MS SQL Server:

Kod musi zostać sprawdzony pod względem poprawności składni (kontrola poprawności

semantycznej - czyli czy kod nie odwołuje się do nieistniejących obiektów lub używa

nieistniejących poleceń oraz kontrola poprawności syntaktycznej - czy użyta składnia jest

poprawna).
Następnie kod jest rozdzielany na fragmenty (często nazywane znacznikami)

interpretowane przez ZSBD. Proces ten nazywamy parsowaniem (ang. parsing).
Następnie SZBD standaryzuje wyodrębnione części kodu, tzn. zapisuje je w jednoznacznej

postaci (usuwając niepotrzebne znaczniki).
Kolejnym etapem jest optymalizacja - każde zapytanie może posiadać wiele

przygotowanych tzw. planów wykonania (ang. execution plan). MS SQL Server posiada

wewnętrzny proces (Query Optimizer), który wybiera optymalny sposób dostępu do danych

- tzn. taki plan wykonania zapytania, w którym serwer będzie skanował (przeszukiwał)

najmniejszą ilość stron danych. Na optymalizację szczególny wpływ mają struktura

indeksów oraz sposób łączenia tabel.
Następuje kompilacja zapytania wg optymalnego planu wykonania i wykonanie

skompilowanego zapytania.
Wyniki działania zapytania są zwracane do klienta.

background image

Wykonywanie procedur składowanych

Wykonywanie procedur składowanych odbywa się inaczej niż wykonywanie

pojedynczych zapytań SQL.

Schemat utworzenia i pierwszego wykonania procedury:

Programista bazy danych tworzy definicję procedury składowanej - tzn.

wykonuje polecenie CREATE PROCEDURE.
Kod procedury jest sprawdzany pod względem syntaktyki.
Nazwa procedury i jej kod (tzw. ciało) są zapisywane do odpowiednich

tabel systemowych bazy danych (sysobjects oraz syscomments).
Użytkownik wywołuje procedurę z odpowiednimi parametrami używając

polecenia EXEC.
Dalej następuje właściwe wykonanie procedury - optymalizacja planu

wykonania i kompilacja.
Skompilowany optymalny plan wykonania jest zapisywany w tzw. cache'u

procedur.

background image

Wykonywanie procedur składowanych

W MS SQL Server przy kontroli poprawności kodu procedury

w trakcie jej tworzenia serwer nie sprawdza, czy istnieją

obiekty (tabele, widoki), do których procedura się odwołuje.
Sprawdzenie to następuje dopiero przy wykonaniu procedury

(w przypadku odwołania do nieistniejącego obiektu

procedura zgłosi błąd).

background image

Wykonywanie procedur składowanych

background image

Praca z procedurami składowanymi

Tworzenie procedur składowanych
Wywoływanie procedur składowanych
Parametry procedur składowanych
Kolejność parametrów

background image

Tworzenie procedur składowanych

Do tworzenia procedur składowanych używamy polecenia

języka SQL

CREATE PROCEDURE (lub CREATE PROC).
W definicji procedury składowanej określamy: nazwę

procedury; nazwy, typy danych oraz kierunek działania

parametrów procedury; ciało procedury - czyli kod

wykonywany przez procedurę; opcjonalnie deklarujemy, czy

procedura ma być przy każdym wykonaniu rekompilowana.

background image

Parametry procedur składowanych

Procedury składowane mogą przyjmować parametry

wywołania. Ilość i typ danych, które należy podać przy

wywołaniu procedury składowanej określamy w trakcie

tworzenia procedury (używając polecenia CREATE

PROCEDURE). W zależności od tego, czy parametry będą

potrzebne do wykonania procedury, czy też mają być one

przez procedurę zwrócone, wyróżniamy dwa rodzaje

parametrów: wejściowe (INPUT) oraz wyjściowe (OUTPUT).
Możliwe jest też zdefiniowanie w procedurze parametru

przejściowego (będącego jednocześnie wejściowym i

wyjściowym), czyli parametru, którego wartość podajemy

przy wywołaniu procedury, a procedura podczas działania

może zmienić wartość parametru i zwrócić nową wartość.

background image

Parametry procedur składowanych –

Kolejność parametrów

Użytkownik ma dwie możliwości wywoływania procedury

składowanej z wieloma parametrami:

podać wartości parametrów w takiej kolejności, w jakiej

parametry zostały zdeklarowane w definicji procedury

składowanej,
przyporządkowywać wartości parametrom o konkretnych

nazwach (kiedy nadajemy jawnie wartości parametrom,

kolejność parametrów w wywołaniu jest dowolna).

background image

Praca z procedurami składowanymi

Tworzenie procedur składowanych
Wywoływanie procedur składowanych
Parametry procedur składowanych
Kolejność parametrów

background image

Zalety procedur składowanych

zwiększają wydajność bazy danych,
ograniczają ruch w sieci (przesyłane są tylko nazwy

procedur wartości parametrów).
zapewniają jedną logikę biznesową dla wszystkich

aplikacji klienckich,
przesłaniają szczegóły tabel w bazie danych

(przezroczystosc struktury dla zwykłego użytkownika

aplikacji),
umożliwiają modyfikację danych bez bezpośredniego

dostępu do tabel bazy danych,
dostarczają mechanizmów bezpieczeństwa (można

nadawać uprawnienia do wykonywania procedur

poszczególnym użytkownikom bazy danych).

background image

Wady procedur składowanych

rekompilacja czasem jest następstwem zmniejszenia wydajności

procedury (czyli administrator baz danych musi wiedzieć, kiedy

przeprowadzić rekompilację),
w procedurach składowanych podobnie jak w perspektywach

występuje problem zerwanego łańcucha własności (patrz moduł 8),
w przypadku zagnieżdżania procedur składowanych należy

pamiętać o tym, że zmienia się kontekst wykonania (procedura

zagnieżdżana wykonuje się z uprawnieniami innej procedury),
wreszcie, aby tworzyć dobre (tzn. poprawnie działające) procedury

składowane niezbędne jest poznanie zaawansowanych

mechanizmów języka SZBD (np. T-SQL) takich jak: operowanie

zmiennymi, funkcje i procedury systemowe, obsługa błędów.

background image

Podsumowanie

Czym są procedury składowane
Praca z procedurami składowanymi
Zalety i wady procedur składowanych

background image

Laboratorium

Procedury systemowe

Tworzenie procedur składowanych


Wyszukiwarka

Podobne podstrony:
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja2
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja6
http, www strefawiedzy edu pl file php file= 28 Wyklady Bazy danych3
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja4
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja10
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja5
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja11a
http, www vbm edu pl UserFiles vbm File art e finance 02 09 08
http, moodle come uw edu pl file php file= 529 LAZARUS

więcej podobnych podstron