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