programowanie obiektow

Transkrypt

programowanie obiektow
Programowanie obiektów
• lokalne tabele tymczasowe,
• globalne tabele tymczasowe,
• zmienne lokalne,
• zmienne globalne
• przypisane wartości zmiennym
Projektowanie baz danych - laboratorium, Hanna Kleban
1
T-SQL
Transact – SQL (T-SQL), tak jak inne języki programoawania posiada
mechanizm tworzenia procedur.
Cechy procedur:
•tworzenie obiektów tymczasowych,
•przekazywanie określonych wartości do i z procedur.
Projektowanie baz danych - laboratorium, Hanna Kleban
2
Tabela tymczasowa
Tabela tymczasowa zbudowana jest tak samo jak zwykła tabela, ale
jest ona automatycznie usuwana po zakończeniu pracy z SQL
Serverem. Tworzenie tabel tymczasowych z punktu widzenia
zasobów Servera jest bardzo kosztowne.
Tworzenie tabele tymczasowych polecenie
CREATE TABLE lub SELECT INTO. Nazwa tabeli jest poprzedzona
znakiem # (tabela lokalna) lub ## (tabela globalna).
W poleceniu tabeli tymczasowej nie można używać klauzuli
definiującej klucze obce (FOREGIN KEY) pozostałe klauzule łącznie z
CHECK są dostępne.
Tabelę tymczasowa można usunąć tylko poleceniem DROPE
TABELE wykonanym z poziomu połączenia tworzącego.
Lokalizacja tabeli tymczasowej - w systemowej bazie danych
tempdb
Projektowanie baz danych - laboratorium, Hanna Kleban
3
Tabela tymczasowa
Przykład tworzenia lokalnej tabeli tymczasowej.
CREATE TABLE #TabTymcz
(Klucz INT PRIMARY KEY,
Wartość CHAR (20))
Lokalne tabele tymczasowe widoczne są tylko w połączeniu w którym je
utworzono. Do globalnych tabel tymczasowych mają dostęp wszyscy
użytkownicy, ale tylko tak długo jak długo połączony jest z SQL
Serwerem jej twórca.
Projektowanie baz danych - laboratorium, Hanna Kleban
4
Tabele tymczasowe
Wstaw do relacji #TabTymcz wiersz klucz=1, wartość = wartość
pierwsza.
Wyświetl zawartość tabeli #TabTymcz.
Przykład
Utwórz lokalną tabelę tymczasową w której będą przepisane wartość
(nazwaolejku, nazwalacinska,idolejku) z relacji olejki.
SELECT NazwaOlejku, NazwaLacinska,idolejku
INTO
#TabelaLokalna
FROM
Olejki
Wyświetl zawartość relacji TabelaLokalna
Projektowanie baz danych - laboratorium, Hanna Kleban
5
Tabele tymczasowe
Przykład
Utwórz tabelę globalną o nazwie TabelaGlobalna....(w miejsce
kropek wpisz numer komputera) do której z tabeli olejki przepisz
nazwaolejki, nazwalacinska.
SELECT NazwaOlejku, NazwaLacinska
INTO
##TabelaGlobalna
FROM
Olejki
Projektowanie baz danych - laboratorium, Hanna Kleban
6
Zmienne
Zmienne są identyfikowane za pomocą przyrostka @ - zmienne lokalne
i @@ - zmienne globalne.
Zmienne lokalne są definiowane przez użytkownika, zmienne globalne
stanowią część środowiska programu SQL Server i nie mogą być
tworzone przez użytkowników.
Składnia instrukcji DECLARE
DECLARE @zmienna_lokalna1 typ_danych, ..., zmienna_lokalnan typ_danych
Typem danych nie może być txte, ntext, image.
DECLARE @zmienna_lokalna TABLE ((definicja_tabeli))
Definicja_tabeli jest identyczna z CREATE TABLE, ale nie mogą w niej
występować ograniczenia PRIMARY KEY, UNIQUE KEY, NULL, CHECK
Projektowanie baz danych - laboratorium, Hanna Kleban
7
Zmienne lokalne
Początkową wartością zmiennej lokalnej jest NULL.
Przypisanie wartości zmiennej:
• poleceniem SET z wartością stałą lub wyrażeniem,
DECLARE @limit numeric (19,2)
SET @limit = 35
SELECT *
FROM olejkiceny
WHERE cena>@limit
•
poleceniem SELECT z wartością stałą lub wyrażeniem,
DECLARE @cena_min numeric (19,2),--deklaracja zmiennych
@cena_max numeric (19,2)
SELECT @cena_min=MIN(Cena),
@cena_max=MAX(cena)
FROM olejkiCeny
--przypisanie wartości
SELECT @cena_min as min, @cena_max as max --zwrócenie jako zestwa wynikowy
Projektowanie baz danych - laboratorium, Hanna Kleban
8
Zmienne lokalne
•
poleceniem INSERT INTO ze zmienną typu tabelowego
-- Utworzenie zmiennej lokalnej typu tabelowego
DECLARE@lokalnaTab TABLE (NazwaOlejku char(50),
NazwaLacinska char(50))
-- Utworzenie wierszy za pomocą instrukcji INSERT
INSERT INTO @lokalnaTab
SELECT NazwaOlejku, NazwaLacinska
FROM Olejki
-- Wyświetlenie wyników
SELECT NazwaOlejku, NazwaLacinska
FROM
@lokalnaTab
Projektowanie baz danych - laboratorium, Hanna Kleban
9
Zmienne globalne
Zmienne globalne możemy podzielić na grupy obejmujące funkcje:
1. specyficzne dla połączenia,
2. monitorujące,
3. konfigurujące.
Projektowanie baz danych - laboratorium, Hanna Kleban
10
Funkcje specyficzne dla połączenia
N a z w a
f u n k c ji
@ @ C U R S O R _ R O W S
@ @ D A T E F IR S T
@ @ D A T E F IR S T
@ @ F E T C H _ S T A T U S
@ @ ID E N T IT Y
@ @ L O C K _ T IM E O U T
@ @ L A N G ID
@ @ N E S T L E V E L
@ @ P R O C ID
@ @ R E M S E R V E R
@ @ R O W C O U N T
@ @ P ID
@ @ T E X T S IZ E
@ @ T R A N C O U N T
W a rto ś ć z w ra c a n a
L ic z b a w ie r s z y w y p e łn ia ją c y c h o s t a tn i o t w a r t y
k u r s o r d la o k r e ś lo n e g o p o łą c z e n ia
P ie r w s z y d z ie ń t y g o d n ia ( 7 - n ie d z ie la , 1 p o n ie d z ia łe k ) u s ta w io n y
p o le c e n ie m
S E T O A T E F IR S T .
K o d b łę d u w y g e n e r o w a n y p r z e z o s ta tn ie w y k o n a n e
w s e s ji p o le c e n ie . U ż y w a n a d o k o n t r o li b łę d ó w w
p r o c e d u r a c h , w s a d a c h i w y z w a la c z a c h .
S t a tu s o s t a t n ie j o p e r a c ji p o b r a n ia r e k o r d u z k u r s o r a
w o t w a r t e j s e s ji.
W a r t o ś ć id e n t it y w y g e n e r o w a n a d la o s ta t n ie g o
d o d a n e g o d o t a b e li r e k o r d u
w b ie ż ą c e j s e s ji. I n f o r m a c ję o o s t a t n ie j w a r t o ś c i
d o d a n e j w d o w o ln e j s e s ji z w r a c a f u n k c ja I D E N T
_ C U R E N T ( ' n a z w a _ ta b e li ' ) .
A k tu a ln y p o z io m z a g n ie ż d ż e n ia tr a n s a k c ji
I d e n t y f ik a t o r ję z y k a a k t u a ln ie u ż y w a n e g o p r z e z
p o łą c z e n ie
A k tu a ln y p o z io m z a g n ie ż d ż e n ia p r o c e d u r y
z a p a m ię t a n e j lu b w y z w a la c z a . W a ż n e je s t je g o
k o n tr o lo w a n ie p r z y w y w o ła n ia c h r e k u r s y w n y c h ,
k t ó r y c h p o z io m n ie m o ż e p r z e k r o c z y ć w a r t o ś c i
m a k s y m a ln e j 3 2 .
I d e n t y f ik a t o r a k t u a ln ie w y k o n y w a n e j p r o c e d u r y .
N a z w a z d a ln e g o s e r w e r a , n a k tó r y m u r u c h o m io n o
z d a ln ą p r o c e d u r ę .
L ic z b a r e k o r d ó w , n a k t ó r y c h o p e r o w a ło
p o le c e n ie s e s ji ( p r z e c z y t a n y c h lu b
z m o d y fik o w a n y c h ) .
I d e n t y f ik a t o r a k t u a ln e g o
p o łą c z e n ia .
M a k s y m a ln a lic z b a b a jt ó w z w r ó c o
in s t r u k c ję S E L E C T w c z a s ie c z y t a
te x t lu b im a g e ( u s ta w io n a p o le c e n
S I lE ) . A p lik a c ja k lie n t a m o ż e ją z m
A k tu a ln y p o z io m
Projektowanie baz danych - laboratorium, Hanna Kleban
o s t a t n ie
z a g n ie ż d ż e n ia
n y c h p rz e z
n ia d a n y c h ty p u
ie m S E T T E X T
n ie js z y ć .
t r a n s a k c ji.
11
Funkcje monitorujące
Nazw a funkcji
@ @ CONNECTIONS
W artość zw racana
Liczba prób logowania od ostatniego restartu
SQL Servera.
@ @ CPU_BUSY
Liczba jednostek czasu (aktualnie 1/100 s) pracy
CPU od ostatniego restartu SQL Servera.
@ @ IDLE
Liczba jednostek czasu (aktualnie 1/100 s)
bezczynności CPU od ostatniego restartu SQL
Servera.
@ @ IO_BUSY
Liczba jednostek czasu (aktualnie 1/100 s), w
których prowadzone były operacje wejściawyjścia, od ostatniego restartu SQL Servera.
@ @ PACK_RECEIVED
Liczba odebranych pakietów od ostatniego
restartu SQL Servera
@ @ PACK SENT
Liczba wysłanych pakietów od ostatniego
restartu SQL Servera.
@ @ PACKET_ERRORS Liczba błędów w czasie wysyłania pakietów od
ostatniego restartu SQL Servera
@ @ TOTAL_ERRORS
Liczba błędów w czasie odbierania pakietów od
ostatniego restartu SQL Servera
@ @ TOTAL_READ
Liczba odczytów z dysku od ostatniego restartu
SQL Servera.
@ @ TOTAL_W RITE
Liczba zapisów na dysku od ostatniego restartu
SQL Servera.
Projektowanie baz danych - laboratorium, Hanna Kleban
12
Funkcje konfigurujące
N a zw a fu n kcji
@ @ O B T S [m s 6 ]
@ @ M A X _ C O N E C T IO N S
@ @ M A X _ P R E C IS IO N
@ @ M IC R O S O F T V E R S IO N
@ @ P R O C ID ID
@ @ SERVERNAM E
@ @ S E R V IC E N A M E
@ @ T IM E T IC K S
@ @ V E R S IO N
W a rtość zaw ra ca n a
W a rto ść o s ta tn ie g o u ż yte g o z n a cz n ik a
c z a s o w e g o d la a k tu a ln e j b a z y d a n yc h . N o w a
w a rto ś ć je st g e n e ro w a n a p o d o d a n iu w ie rsz a
d o ta b e li z a w ie ra ją c e j p o le te g o typ u .
M a k s ym a ln a lic z b a p o łą cz e ń u ż ytk o w n ik ó w
m o ż liw a d o o b s łu ż e n ia . N ie m u s i o d p o w ia d a ć
a k tua ln e j w a rto śc i te g o p a ra m e tru .
M a k s ym a ln y p o z io m p re c yz ji d la typ ó w
n u m e ryc z n yc h i d z ie s ię tn yc h .
W e w n ę trz n y n u m e r w e rs ji M ic ro so ft.
ID a k tu a ln ie w yk o n yw a n e j p ro c e d u ry
z a p a m ię ta n e j.
N a z w a S Q L S e rve ra . P o w in n a o d p o w ia d a ć
n a z w ie k o m p u te ra . J e że li je d n a k je j n ie
o d p o w ia d a , m o ż n a u s u n ą ć b łę d n ą n a zw ę
s e rw e ra , u ru c h a m ia ją c s p _ d ro p s e rve r, p o
c z ym d o d a ć n o w ą , k o rz ys ta ją c z s p
_ a d d s e rve r.
N a z w a k lu cz a re je stru , p o d k tó rym
u ru c h o m io n o S Q L S e rve r. Z w ra c a
M S S Q L S e rve r, je że li b ie ż ą c a in sta n c ja je s t
in s ta n c ją d o m yś ln ą ; lu b n a z w ę a ktu a ln ie
u ż ytk o w a n e j in sta n c ji ja k o in s ta n c ji n a z w a n e j.
L icz b a m ik ro s e k u n d n a je d n o s tk ę cz a s o w ą .
N u m e r w e rs ji S Q L S e rve ra .
Projektowanie baz danych - laboratorium, Hanna Kleban
13
Zmienne globalne
Przykład
SELECT @@SERVERNAME as 'Nazwa',
@@VERSION as 'Wersja',
@@LANGUAGE as 'Język'
Projektowanie baz danych - laboratorium, Hanna Kleban
14