Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
CzęśćIBudowaniezrozumiałegoT-SQL
danychtrzebamiećnauwadzepotencjalnywpływnawydajnośćpowiązanyzestosowa-
niemkursorów.
TypdanychCURSORjestzazwyczajużywanyjakozmienna.Jednaktentypmoże
byćrównieżużytyjakoformatwyjściowyzproceduryskładowanej.Wkażdymprzy-
padkutypdanychCURSORprzyjmujejakowejściezbiórdanychiwykonujedziałania
nakażdymrekordzie,wierszpowierszu.Jakożekursormożeprzechowywaćzbiórda-
nych,możliwejestrównież,żeniebędziezawieraćżadnychdanych.Oznaczato,żetyp
danychCURSORjestnullable.
Większośćzastosowańtegotypudanychmazwiązekztworzeniemiużywaniem
kursora.Abymócutworzyćkursor,koniecznejestzadeklarowaniezmiennejlokalnej
jakotypCURSOR.Podobniejakwprzypadkuinnychzmiennychlokalnych,możliwe
jestalbozadeklarowaniekursoraiwypełnieniegowartościami,albozadeklarowanie
ikursoraiwypełnieniegoprzyużyciuwyrażeniaoperującegonazbiorach.Typutego
mogąużywaćfunkcjesłużącedoprzetwarzeniakursorów.Zaliczająsiędonichfunkcje
OPEN,FETCH,CLOSE,DEALLOCATEorazCURSOR_STATUS.Dodatkowoistnie-
systemoweproceduryskładowane,któremajątypdanychCURSOR.
Jednymzkluczowychczynnikówdlazrozumieniaróżnychdostępnychtypówdanych
jestznajomośćzastosowańtychtypów.Wniektórychprzypadkachużyciewłaściwego
typumożeoznaczaćoszczędnośćmiejsca.Winnychsytuacjachwybórniewłaściwego
typudanychmożepowodowaćznacząceproblemywydajnościowe.Będziemyrównież
chcielizachowaćspójnośćwstosowaniuiodwoływaniusiędodanychwnaszymkodzie
T-SQLiwobiektachbazodanowych.JeśliSQLServermusiporównaćdwaróżnetypy,
koniecznejestprzekonwertowanieprzynajmniejjednegoznich,abybyłytakiesame.
Procestennazywamyniejawnąkonwersją.Kosztprocesorapowiązanyzniejawnymi
konwersjamimożebyćznaczącyinależygounikać,oiletomożliwe.Najlepszymsposo-
bemunikanianiejawnychkonwersjijestużywanietychsamychtypówdanychdlapól,
którebędąporównywane.Największymwyzwaniemjestto,żeniekiedytrzebawielu
lat,abysięprzekonać,żeniewłaściwytypdanychmanegatywnywpływnawydajność
aplikacji.
24