Microsoft SQL Server 6.5 tinteste sus - si de obicei nimereste.

SQL Server: Un pas înainte

Mark Hetter

Lansat vara trecută, SQL Server 6.0 a reprezentat prima versiune a acestui sistem de gestiune a bazelor de date realizată exclusiv de Microsoft, după despărtirea de Sybase, proiectantul initial al produsului. În urma acestui upgrade vine versiunea 6.5.

SQL Server 6.5 are suficiente facilităti noi ca să justifice un manual de 500 de pagini. Printre acestea se numără îmbunătătirea suportului pentru administrarea datelor la nivelul întregii întreprinderi, unelte noi pentru publicarea datelor în Internet, precum si facilităti care extind puterea procedurilor de baze de date.

Administrând servere multiple

Microsoft s-a descurcat bine în privinta modului întortocheat în care SQL Server manipulează schimbările care intervin în date aflate pe mai multe servere. Procesul, numit two-phased commit (comitere în două faze), este un mecanism care garantează că modificările care afectează mai multe servere fie sunt comise toate (adică sunt înscrise efectiv) fie sunt toate abandonate (rolled back). În faza 1, sistemul se asigură că toate serverele sunt gata pentru comitere; în faza 2, serverele comit efectiv modificarea. SQL Server cerea programatorilor să codifice cele două faze, sistemul de baze de date nefiind capabil să realizeze automat operatiunea.

Datorită unei noi facilităti în versiunea 6.5, DTC (Distributed Transaction Coordinator -coordonatorul tranzactiilor distribuite), utilizatorii au posibilitatea mai simplă de a executa rutine Transact-SQL care actualizează servere multiple într-o singură tranzactie. DTC lucrează în planul secund, urmărind si coordonând modificările. O altă posibilitate este oferită de un utilitar functionând ca un client al DTC, care permite aplicatiilor să grupeze instructiuni SQL afectând mai multe servere într-o singură tranzactie. Avantajul acestui utilitar este că permite aplicatiilor să se adreseze în mod direct fiecărui server. În contrast, rutinele Transact-SQL se execută pe un singur server, referintele la celelalte servere fiind limitate la procedurile stocate la distantă (remote).

DTC foloseste OLE pentru a coordona serverele implicate într-o tranzactie. Desi SQL Server este singurul gestionar de resurse cu care DTC poate lucra, OLE va permite Microsoft-ului să suporte eventual tranzactii distribuite care incorporează mai multe gestionare de resurse (un gestionar de resurse - resource manager - este un program care administrează resursele accesate într-o tranzactie). Fiecare gestionar de resurse va fi un server OLE, cu DTC functionând ca un client OLE care foloseste OLE automation pentru a controla comportarea serverului.

Enterprise Manager-ul lui SQL Server oferă o interfată intuitivă de tip “point-and-click” pentru controlul replicării între servere multiple. Tabele individuale ale unui server pot fi făcute disponibile prin publicare (publish); alte servere pot să se aboneze (subscribe) la o tabelă publicată. Administratorii pot să specifice dacă modificările trebuie replicate imediat ce survin sau pe baza unei planificări. Oricine a avut de-a face cu complexitatea lui Sybase Replication Server sau cu multitudinea optiunilor de replicare din Oracle va aprecia simplitatea abordării Microsoft.

Nouă în versiunea 6.5 este abilitatea de a replica spre alte baze de date. Această facilitate, numită replicare eterogenă, foloseste ODBC (Open Database Connectivity) pentru a transfera date din SQL Server spre SGBD-uri cum ar fi Access sau Oracle. Deoarece SQL Executive monitorizează modificările în datele ce trebuie replicate si planifică transferurile de date, replicarea în sens invers (de la alte baze de date spre SQL Server) nu este suportată. Nu puteti, de exemplu, să introduceti date într-o bază de date Access departamentală si să replicati cu SQL Server modificările într-o locatie centrală.

Suport Internet

Web Assistent-ul inclus în SQL Server 6.5 este unul din cele două instrumente introduse anul acesta de Microsoft pentru a produce pagini Web care incorporează continut din baze de date. Celălalt este Internet Database Connector (IDC), care face parte dintr-un alt produs Microsoft, Internet Information Server (IIS).

În timp ce IDC rulează pe serverul Web si "trage" date din baza de date, Web Assistant "împinge" date din baza de date spre serverul Web. Web Assistent dispune de un wizard care permite proiectantilor de pagini Web să introducă criterii de selectare si informatii de formatare; proiectantii pot să utilizeze si "sabloane” similare celor folosite de IDC. Cu toate că paginile rezultate sunt statice (deci nu sunt generate dinamic ca în cazul IDC), SQL Executive poate să le regenereze periodic, fie pe baza unei planificări fie ori de câte ori intervine o modificare.

Gestiunea cărtilor cu SQL Server

Pentru a compara performantele lui SQL Server 6.5 cu cele ale versiunii 6.0 am cronometrat interogările realizate într-o aplicatie de procesare a comenzilor de cărti, pe o bază de date continând cinci tabele, fiecare având între 10.000 si 100.000 de înregistrări la începutul testelor. Mai întâi, tranzactionarea unei comenzi căuta un ISBN, executa un join pe trei tabele pentru a găsi autorul, operatie repetată pentru cinci cărti. Apoi se inserau înregistrările pentru urmărirea comenzii si se actualizau stocurile. O tranzactie de plată căuta înregistrarea unei comenzi si o actualiza pentru a marca efectuarea plătii.

Versiunea “simple-query” a testului căuta un interval de numere de comenzi, returnând de fiecare dată cam 2000 de comenzi. Operatia de join pe cinci tabele căuta un interval cuprinzând cam 2000 de comenzi, listând titlul cărtile din fiecare comandă si autorul fiecărei cărti. Cu cinci cărti pe o comandă si doi autori pentru o carte, testul pe cinci tabele producea ca rezultat un set de circa 20.000 de înregistrări.

Rezultatele prezentate mai jos au fost normalizate, considerând rezultatele lui SQL Server 6.0 egale cu 1. Numerele mai mari sunt mai bune.

SQL Server 6.5

Test comenzi (un utilizator) 1,385

Test comenzi (opt utilizatori) 1,106

Test plată (un utilizator) 1,333

Test plată (opt utilizatori) 1,133

Simple-query 1,400

Join pe cinci tabele 1,417

Automatizare OLE prin proceduri stocate

Microsoft a recunoscut demult că indiferent cât de puternic este limbajul de interogare propriu al unui sistem de baze de date, anumite operatii pot fi realizate mai eficient de alte programe. O versiune anterioară a lui SQL Server introducea procedurile externe, care permit rutinelor Transact-SQL să apeleze proceduri din DLL-uri. În versiunea 6.5 Microsoft a extins acest concept furnizând un set de proceduri stocate care să faciliteze automatizarea OLE. Puteti apela aceste proceduri în rutine Transact-SQL pentru a accesa servere OLE si a executa metode ale acestora.

Proiectantii pot de asemenea să scrie propriile lor programe OLE-server pentru a fi accesate din SQL Server, extinzând functionalitatea într-o manieră similară procedurilor externe. Automatizarea OLE este piesa centrală a strategiei Microsoft pentru partitionarea aplicatiilor. O mare parte din manualul Visual Basic 4.0 pentru dezvoltarea aplicatiilor client/server se ocupă de transferarea unor portiuni din functionalitatea unei aplicatii unui program server OLE rulând pe o altă masină.

Posibilitatea de a realiza automatizarea OLE din SQL Server si nu doar dintr-o aplicatie client, permite rutinei de automatizare să fie parte a rutinei de validare înglobate. De exemplu, o verificare a creditului folosită pentru validarea unei comenzi de cumpărare poate necesita folosirea unei aplicatii externe care să se conecteze telefonic la o locatie îndepărtată pentru a verifica informatia.

Kilometrajul poate să difere

În testele noastre de performantă (vezi tabelul din caseta “Gestiunea cărtilor cu SQL Server 6.5”), am constatat că SQL Server 6.5 este cel putin la fel rapid ca versiunea 6.0 (de regulă mai rapid), dar va trebui să-l testati pe propriile aplicatii pentru a avea o măsură mai exactă a performantelor. De asemenea, reglajul bazei de date, cum ar fi stabilirea modului de blocare a unei tabele la nivel de linie sau de pagină (vezi “Focus Tehnologic") poate afecta rezultatele testelor.

Mai este loc pentru îmbunătătiri în versiunea 6.5. Interfata grafică pentru încărcarea datelor, care a dispărut în upgrade-ul de la 4.2 la 6.0, ar trebui introdusă din nou, iar imposibilitatea de a modifica coloanele existente este un inconvenient major. Cu toate astea SQL Server este în continuare cu un cap deasupra concurentei în materie de uzabilitate, mai cu seamă prin caracterul intuitiv al uneltelor de administrare. Un upgrade solid. 

Mark Hetter este redactor tehnic principal la NSTL, divizia de teste a McGraw-Hill. Îl puteti contacta prin Internet la markh@nstl.com.

(C) Copyright Computer Press Agora