SQL Server 2005 - Tutorial -...
Click here to load reader
Transcript of SQL Server 2005 - Tutorial -...
SQL Server 2005Φροντιςτόριο
Γεράςιμοσ Μαρκζτοσ
InfoLab, Τμιμα Πλθροφορικισ, Πανεπιςτιμιο Πειραιϊσ (http://infolab.cs.unipi.gr/)
Φροντιςτόριο-Εργαςτόρια
Ημερομηνία Αντικείμενο Περιγραφή
Φροντιςτιριο ςτον SQL Server Παρουςίαςθ περιβάλλοντοσ SQL Server
Εργαςτιριο - SQL Server Database Engine/ Integration
Services
Σχεδίαςθ ΒΔ ςτον SQL Server, διαδικαςίεσ μεταφοράσ και
χειριςμοφ δεδομζνων (SSIS), TSQL, κζματα βζλτιςθσ εκτζλεςθσ
SQL ερωτθμάτων
Εργαςτιριο - SQL Server Database Engine
DBA ςε 2 ϊρεσ (διαχείριςθ χρθςτϊν, απόδοςθ SQL Server,
ςυνοδευτικά εργαλεία)
2
RDBMS Μερύδια Αγορϊσ
Company 20062006 Market
Share (%) 20052005 Market
Share (%)2005-2006
Growth (%)
Oracle 7,168.0 47.1 6,238.2 46.8 14.9
IBM 3,204.1 21.1 2,945.7 22.1 8.8
Microsoft 2,654.4 17.4 2,073.2 15.6 28.0
Teradata 494.2 3.2 467.6 3.5 5.7
Sybase 486.7 3.2 449.9 3.4 8.2
Other Vendors
1,206.3 7.9 1,149.0 8.6 5.0
Total 15,213.7 100.0 13,323.5 100.0 14.2
Source: Gartner Dataquest (June 2007)
Worldwide Vendor Revenue Estimates from RDBMS Software, Based on Total Software Revenue, 2006 (Millions of Dollars)
4
SQL Server 2005
Γενικά
SQL Server
SQL Server
7.0
SQL Server
2005
SQL Server
2000
• Lowest TCO• Automatic Tuning
• Reliability & Security• Integrated Business Intelligence
High availability
Security
Developer productivity
Native XML
First to include Enterprise ETL & Deep Data Mining
Performance, scalability focus
XML support
First to include Notification
First to include Data Mining & Reporting
Re-architecture of relational server
Extensive auto resource management
First to include OLAP & ETL
Cross-release objectives
SQL Server
6.0/6.5
Differentiation from Sybase SQL Server
Windows integration
First to include Replication
1st Generation 2nd Generation 3rd Generation
SQL Server 2005 Data Platform
SQL Server 2005 Components
SQL Server 2005Relational Database Engine
.NET CLR
Analysis Services
Native HTTP Support
Service BrokerReplication
Reporting ServicesFull-Text Search
Notification Services
SQL Server Integration Services
Εκδόςεισ Enterprise (για Windows Server)
Περιλαμβάνει το ςφνολο των δυνατοτιτων ςου ςυςτιματοσ SQL Server 2005
Standard
Περιλαμβάνει τισ βαςικζσ δυνατότθτεσ του ςυςτιματοσ SQL Server 2005
Workgroup
Βαςικζσ δυνατότθτεσ για μικρζσ επιχειριςεισ
Developer (τρζχει και ςε Windows XP)
Περιλαμβάνει όλεσ τισ δυνατότθτεσ (όπωσ τθν enterprise) αλλά ζχει περιοριςμοφσ ςτθ χριςθ (μόνο για development, τεςτ και demo)
Compact
Για mobile εφαρμογζσ
Express
Η δωρεάν ζκδοςθ που όμωσ ζχει πολλοφσ περιοριςμοφσ (ςτο μζγεκοσ των βάςεων δεδομζνων κτλ)
Δείτε: http://technet.microsoft.com/el-gr/library/ms143506(en-us,SQL.90).aspx
Νέο στον SQL Server 2005
Express Workgroup
Standard EnterpriseFastest way for
developers to learn, build & deploy simple
data driven applications
Easiest to use & most affordable database solution for smaller
departments & growing businesses
Complete data management & analysis platform for medium businesses and large
departments
Fully integrated data management and
analysis platform for business critical
enterprise applications
2 CPU
3 GB RAM
Management Studio
Import/Export
Limited Replication Publishing
Back-up Log-shipping
4 CPU
Unlimited RAM(64-bit)
Database Mirroring
OLAP Server
Reporting Server
New Integration Services
Data Mining
Full Replication & SSB Publishing
Unlimited Scale + Partitioning
Adv. DB mirroring, Complete online &
parallel operations,
DB snapshot
Advanced Analysis Tools including full
OLAP & Data Mining
Report Builder + Customized & High
Scale Reporting
Adv SSIS
1 CPU1 GB RAM
4GB DB Size
Simple Management Tool
Report Wizard & Report Controls
Replication & SSB Client
Εκδόςεισ
Καλϊ όλα αυτϊ… αλλϊ…
Ποιο λογιςμικό χρειάηομαι;
SQL Server 2005 Developer Edition 32/64 bit
Που κα το βρω;
http://msdnaa.cs.unipi.gr
Τι πρζπει να εγκαταςτιςω;
SQL Server Database Services
Workstations components , books online, development tools και sample databases
Να οριςτεί Mixed το Windows Authentication Mode
10
Πωσ ςυνδϋομαι;
Ανοίγω το SQL Server Management Studio
Επιλζγω να ςυνδεκϊ ςτο Database Engine (υπάρχουν και άλλα…)
Επιλζγω τον Database Server ςτον οποίο κα ςυνδεκϊ (π.χ. Localhost)
Επιλζγω τφπο πιςτοποίθςθσ (authentication): υπάρχουν δυο είδθ λογαριαςμϊν ςτον SQL Server
Windows ι domain χριςτεσ – Windows Authentication
SQL Server χριςτεσ – SQL Server Authentication
Πλθκτρολογϊ username, password
11
Βαςικϊ εργαλεύα
Νζο: SQL Server Management Studio Υποςτιριξθ όλων των SQL Server components
Database Engine
Analysis Services
Reporting Services
Notification Services
Integration Services
SQL Server Mobile Edition …
Υποςτιριξθ προθγοφμενων εκδόςεων του SQL Server
Νζο : Management Objects (SMO) Objects για διαχείριςθ (με προγραμματιςτικό τρόπο) του SQL Server
Νζο : SQLCMD Command line εργαλείο διαχείριςθσ του SQL Server
Νζο : Database Mail Αντικακιςτά το SQLMail
SMTP Support, Cluster Support, 64-bit Support
Δεν απαιτείται το Outlook
SQL Server Management Studio
SQL Server Configuration Manager
Change the Service Log On
Accounts for each SQL Service
Manage the State and Start
Mode for SQL ServicesConfigure SQL Services, Network
Protocols and Network
Configuration
Δημιουργύα Scripts
Το Management Studio χρθςιμοποιεί τον SMO scripter
Όλεσ οι ενζργειεσ γίνονται scripts Καλφτεροσ ζλεγχοσ
Αποκικευςθ εντολϊν για μελλοντικι/ επαναλαμβανόμενθ χριςθ
SQL Command-Line Tool
Type SQLCMD to enter
Interactive Mode
Type Exit to exit Interactive Mode
“SQLCMD –S” to connect to
Named Instance
Run “SQLCMD –i” to run against
a pre-built script fileRun “SQLCMD –o” to direct
output to a file
CONNECT LON-DC-01\MSSQLSERVER
setvar db CustomerDB
BACKUP DATABASE $(db) TO DISK = “$(PATH)\$(db).bak”
CONNECT LON-SQL-01\MSSQLSERVER
setvar db ContactsDB
BACKUP DATABASE $(db) TO DISK = “$(PATH)\$(db).bak”
SQLCMD –Q –i C:\SCRIPTS\BACKUP.SQL –v PATH=“N:\BACKUPS”
SQLCMD Scripting Functionality
LON-DC-01
CustomerDB
LON-SQL-01
ContactsDB
N:\BACKUPS
Database Mail Μζςω SMTP – Δεν είναι
απαραίτθτο το Microsoft Outlook
Cluster support
64-bit support
Δεν χρθςιμοποιείται το SQLCLR
Βαςίηεται ςε αςφγχρονθ αρχιτεκτονικι
Πολλαπλοί SMTP λογαριαςμοί
Καταγραφι ενεργειϊν (Logging)
Ενεργοποιοφνται Alerts λόγω:
Λακϊν ςτον SQL Server
Θεμάτων ςτθν απόδοςθ του server
Ο SQL Agent μπορεί να χρθςιμοποιεί τοdatabase mail
Νζοι τφποι εργαςιϊν
Analysis Services
Integration Services
Οριςμόσ Proxy λογαριαςμϊν
Κάκε proxy λογαριαςμόσ ςυςχετίηεται SQL Server λογαριαςμό
Proxy λογαριαςμοί ορίηονται ςε database χριςτεσ, database ρόλουσ, και server ρόλουσ
SQL Server Agent
Δημιουργύα Βϊςησ Δεδομϋνων
Απλόσ τρόποσ:
δεξί κλικ ςτο φάκελο
‘Database’,
επιλογι ‘New Database’
Ολοκλιρωςθ του Wizard
‘New Database’
Σφνκετοσ τρόποσ:
Με χριςθ τθσ εντολισ T-
SQL CREATE DATABASE
Δημιουργύα Πύνακα Μζςα από το γραφικό
περιβάλλον
Επιλζγουμε τθ βάςθ δεδομζνων και κάνουμε δεξί κλικ ςτον φάκελο Table και επιλζγουμε New Table
Ορίηουμε για κάκε ςτιλθ όνομα και τφπο δεδομζνων
Δυνατότθτα αποκικευςθσ του Script
Με χριςθ τθσ εντολισ T-SQL CREATE TABLE
Σχεδιαςμόσ Βϊςησ Δεδομϋνων Μοντελοποίθςθ
βάςεων δεδομζνων (δθμιουργία διαγραμμάτων)
Δυνατότθτα δθμιουργίασ και διαγραφισ πινάκων, ευρετθρίων, κλειδιϊν κ.α.
Δημιουργύα Όψεων (Views)
Όψθ = εικονικόσ πίνακασ που βαςίηεται ςε ζνα SQL ερϊτθμα
Μζςα από το γραφικό περιβάλλον
Επιλζγουμε τθ βάςθ δεδομζνων και κάνουμε δεξί κλικ ςτον φάκελο Views και επιλζγουμε New View
Επιλζγουμε πίνακεσ και τρόπο ςφνδεςθσ τουσ
TIP: Εφκολοσ ςχεδιαςμόσ ερωτιματοσ μζςα από τθν οκόνθ δθμιουργίασ View
Με χριςθ τθσ εντολισ T-SQL CREATE VIEW
Slide: 24© Edgewood Solutions LLC 2006
Synonyms Synonym = reference
ςε αντικείμενο που μπορεί να βρίςκεται ςε άλλον server ι ςχιμα
Μζςα από το γραφικό περιβάλλον
Με χριςθ τθσ εντολισ T-SQL CREATE SYNONYM
Δημιουργύα SQL ερωτημϊτων
Κάνουμε κλικ ςτο κουμπί New Query (πάνω αριςτερά)
Γράφουμε τον κϊδικα που κζλουμε και πατάμε το κουμπί Execute
25
Ειςαγωγό/ Εξαγωγό δεδομϋνων
Κάνοντασ δεξί κλικ ςε μια βάςθ δεδομζνων και μζςω του μενοφ Tasks μασ δίνονται δυνατότθτεσ Ειςαγωγισ (Import) και Εξαγωγισ (Export) δεδομζνων
Στον Wizard που ξεκινάει πρζπει αρχικά να ορίςουμε πθγι προζλευςθ. Αυτά μπορεί να είναι:
Text αρχεία
Excel και Access αρχεία
SQL Server
Oracle
Άλλα RDBMS
26
Ειςαγωγό/ Εξαγωγό δεδομϋνων
Αν για παράδειγμα επιλζξουμε να ειςάγουμε δεδομζνα από ζνα text αρχείο ςτον SQL Server τότε πρζπει να ορίςουμε: που βρίςκεται το αρχείο
τθ βάςθ δεδομζνων ςτθν οποία κα αποκθκευτεί το αρχείο
τθ μορφι που ζχει το αρχείο (με ποιον τρόπο διαχωρίηονται οι γραμμζσ και οι ςτιλεσ)
το όνομα του πίνακα ςτο οποίο κα αποκθκευτοφν τα δεδομζνα
Αν δεν υπάρχει ο πίνακασ τότε κα δθμιουργθκεί
Αν υπάρχει ο πίνακασ, μποροφμε να κάνουμε αντιςτοίχθςθ μεταξφ των ςτθλϊν του αρχείου με τισ ςτιλεσ του πίνακα (προςοχή ςτουσ διαφορετικοφσ τφπουσ δεδομζνων)
27
Backup/ Restore
Κάνοντασ δεξί κλικ ςε μια βάςθ δεδομζνων και μζςω του μενοφ Tasks μασ δίνονται δυνατότθτεσ Backup και Restore
Τζτοιεσ διαδικαςίεσ μποροφν να προγραμματιςτοφν ϊςτε να εκτελοφνται αυτόματα
28
Backup
Για το backup, οι παράμετροι που πρζπει να κακορίςουμε:
Σε ποια βάςθ κα γίνει backup
Τφποσ backup
Full (όλθ τθ ΒΔ ι ςυγκεκριμζνα filegroups και μζροσ του log)
Differential (βάςθ ενόσ τελευταίου full backup)
Transaction log (μόνο το log)
Αν το backup λιγει μετά από ζνα διάςτθμα
Τον προοριςμό του backup αρχείου
Αν το backup αρχείο κα προςτεκεί ςε ζνα υπάρχον backup set ι κα διαγράψει τα προθγοφμενα
29
Restore
Για το restore, οι παράμετροι που πρζπει να κακορίςουμε:
Σε ποια βάςθ κα γίνει restore
Από ποφ κα γίνει restore (από ΒΔ, από Device)
Προςδιορίηουμε το ςυγκεκριμζνο backup set που κα γίνει restore (1 αρχείο πολλά sets)
Αν το backup αρχείο κα προςτεκεί ςε ζνα υπάρχον backup set ι κα διαγράψει τα προθγοφμενα
Ορίηουμε αν κα διαγραφοφν τα δεδομζνα που υπάρχουν εκείνθ τθ ςτιγμι ςτθ ΒΔ
30
Ευρετόρια
Επιλογζσ όταν δθμιουργοφμε ευρετιρια:
Clustered (το φυςικό αρχείο αναπροςαρμόηεται)
Nonclusterted (δθμιουργείται κατάλλθλο δζντρο)
Μποροφμε να ορίςουμε να είναι unique (δεν κα επιτρζπει τθν ίδια εγγραφι δυο φορζσ)
Όταν ορίηουμε πρωτεφον κλειδί τότε αυτόματα ορίηεται Clustered + Unique
Επιλζγουμε τισ ςτιλεσ πάνω ςτισ οποίεσ κα ςτθκεί το ευρετιριο
31
32
SQL Server 2005
T-SQL, CLR και XML
Η γλώςςα SQL SQL = Structured Query Language
Αναπτφχκθκε από τθν IBM το 1970
Είναι πλζον ANSI και ISO standard για RDBMS SQL ANSI = American National Standards Institute
ISO = International Organization for Standardization
SQL86 => SQL89 => SQL92
Συνδυάηει πολλζσ «γλϊςςεσ»:
DDL (Data Definition Language),
DML (Data Modification),
SAL (System Administration Language)
QL (Query Language)
Η εντολό SELECT
SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ]
SELECT: Λογικό ροό
1. From: Σφνολο δεδομζνων (πίνακασ, όψθ, άλλο SQL ερϊτθμα)
2. Where: Επιλογι ςυγκεκριμζνων εγγραφϊν-γραμμϊν (ςτθ ςτιλθ να υπάρχει θ φράςθ “%First Aid%”).
3. Aggregations: Είναι δυνατό να οριςτοφν ςυνακροίςεισ (aggregations) ςτο ςφνολο δεδομζνων (average, sum, count, min, max κτλ)
4. Order By: Οι εγγραφζσ που ζχουν τελικά επιλεγεί μποροφν να ταξινομθκοφν με βάςθ όςα δθλϊνονται ςτο order by.
5. Predicate: H ςειρά εμφάνιςθσ των ςτθλϊν
SELECT Clause (SELECT)
SELECT [ ALL | DISTINCT ][ TOP n [ PERCENT ] [ WITH TIES ] ] < select_list >
< select_list > ::=
{ * | { table_name | view_name | table_alias }.*| { column_name | expression | IDENTITYCOL |
ROWGUIDCOL } [ [ AS ] column_alias ]
| column_alias = expression } [ ,...n ]
FROM Clause (SELECT) [ FROM { < table_source > } [ ,...n ] ]
< table_source > ::= table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [
,...n ] ) ] | view_name [ [ AS ] table_alias ] | rowset_function [ [ AS ] table_alias ] | OPENXML | derived_table [ AS ] table_alias [ ( column_alias [ ,...n ]
) ] | < joined_table >
< joined_table > ::= < table_source > < join_type > < table_source > ON <
search_condition > | < table_source > CROSS JOIN < table_source > | < joined_table >
< join_type > ::= [ INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } ] [ < join_hint > ] JOIN
Joins Υποκζτουμε ότι ζχουμε τουσ πίνακεσ
loan και borrower
n Σθμείωςθ: Δεν γνωρίηουμε πλθροφορίεσ για το δάνειο του πελάτθ Hayes και δεν ζχουμε ο όνομα του πελάτθ με δάνειο L-260
Joins - Παραδεύγματα
loan inner join borrower onloan.loan_number =borrower.loan_number
n loan left outer join borrower onloan.loan_number = borrower.loan_number
Joins - Παραδεύγματα
loan full outer join borrower using (loan_number)
n Συνδυάςει left και right outer join
WHERE Clause (SELECT)
[ WHERE < search_condition > | < old_outer_join > ]
< old_outer_join > ::= column_name { * = | = * } column_name
Search Condition (WHERE Clause) < search_condition > ::=
{ [ NOT ] < predicate > | ( < search_condition > ) } [ { AND | OR } [ NOT ] { < predicate > | ( < search_condition
> ) } ] } [ ,...n ]
< predicate > ::= { expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }
expression| string_expression [ NOT ] LIKE string_expression
[ ESCAPE 'escape_character' ] | expression [ NOT ] BETWEEN expression AND expression| expression IS [ NOT ] NULL | CONTAINS
( { column | * } , '< contains_search_condition >' ) | FREETEXT ( { column | * } , 'freetext_string' ) | expression [ NOT ] IN ( subquery | expression [ ,...n ] ) | expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }
{ ALL | SOME | ANY} ( subquery ) | EXISTS ( subquery )
}
GROUP BY Clause (SELECT)
[ GROUP BY [ ALL ] group_by_expression [ ,...n ]
[ WITH { CUBE | ROLLUP } ] ]
Συνικωσ χρθςιμοποιείται μαηί με ςυναρτιςεισ ςυνάκροιςθσ (aggregate)
π.χ. SUM, COUNT, AVG, κτλ.
HAVING Clause (SELECT)
[ HAVING < search_condition > ]
UNION Clause (SELECT)
{ < query specification > | ( < query expression > ) } UNION [ ALL ] < query specification | ( < query expression > )
[ UNION [ ALL ] < query specification | ( < query expression > )
[ ...n ] ]
ORDER BY Clause (SELECT)
[ ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n] ]
INSERT
INSERT [ INTO] { table_name WITH ( < table_hint_limited > [ ...n ] )
| view_name | rowset_function_limited
}
{ [ ( column_list ) ] { VALUES
( { DEFAULT | NULL | expression } [ ,...n] ) | derived_table | execute_statement
} } | DEFAULT VALUES
< table_hint_limited > ::= { FASTFIRSTROW
| HOLDLOCK | PAGLOCK | READCOMMITTED | REPEATABLEREAD | ROWLOCK | SERIALIZABLE | TABLOCK | TABLOCKX | UPDLOCK
}
UPDATE
UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited} SET { column_name = { expression | DEFAULT | NULL } | @variable = expression| @variable = column = expression } [ ,...n ]
{ { [ FROM { < table_source > } [ ,...n ] ]
[ WHERE < search_condition > ] }
| [ WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name }] } [ OPTION ( < query_hint > [ ,...n ] ) ]
DELETE
DELETE [ FROM ]
{ table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited}
[ FROM { < table_source > } [ ,...n ] ]
[ WHERE { < search_condition > | { [ CURRENT OF
{ { [ GLOBAL ] cursor_name } | cursor_variable_name
} ] }
} ] [ OPTION ( < query_hint > [ ,...n ] ) ]
Μετατροπϋσ
CAST και CONVERT
Μετατρζπει ζνα τφπο ςε ζνα άλλο. Οι εντολζσ είναι παρόμοιεσ απλά με διαφορετικι
ςφνταξθ
CAST ( expression AS data_type )
CONVERT ( data_type [ ( length ) ] ,
expression [ , style ] )
Aggregations
Εκτϋλεςη SQL ερωτημϊτων
Απόδοςη SQL ερωτημϊτων
Τθν εκτζλεςθ των SQL ερωτθμάτων τθ διαχειρίηεται ο Query Optimizer
Αποφαςίηει ποια Index κα χρθςιμοποιιςει
Επιλζγει ποιο πλάνο εκτζλεςθσ κα ακολουκιςει
Αποφεφγουμε SQL ερωτιματα τφπου SELECT * FROM
Προςζχουμε τθ χριςθ (!) καρτεςιανοφ γινομζνου
SELECT * FROM a, b
Προςοχι ςτθ χριςθ του LIKE
Χρθςιμοποιείται ευρετιριο(αν υπάρχει) όταν… WHERE lname LIKE ‘w%’
Δεν χρθςιμοποιείται ευρετιριο όταν… WHERE lname LIKE ‘%alton’
53
Απόδοςη SQL ερωτημϊτων
Βελτιϊνουμε τθν απόδοςθ JOIN ερωτθμάτων όταν:
Περιορίηουμε τον αρικμό των εγγραφϊν πάνω ςτισ οποίεσ γίνεται το JOIN
Δθμιουργοφμε ευρετιρια πάνω ςτισ ςτιλεσ ςτισ οποίεσ γίνεται το JOIN (ςτα ξζνα κλειδιά δε δθμιουργοφνται αυτόματα τα ευρετιρια)
Κάνουμε JOIN πάνω ςε πεδία με όςο το δυνατό μικρότερο μικοσ (προςζχουμε τουσ τφπουσ δεδομζνων και αν χρειαςτεί δθμιουργοφμε και τεχνθτά κλειδιά)
Κάνουμε JOIN πάνω ςε πεδία με ίδιο τφπο δεδομζνων (ζτςι αποφεφγεται θ μετατροπι από τον SQL Server)
Επανα-δθμιουργοφμε (rebuild) τα ευρετιρια ϊςτε να απελευκερωκεί ελεφκεροσ χϊροσ
Σε περίπτωςθ μεγάλων JOIN προτιμοφμε να τοποκετοφμε τουσ πίνακεσ ςε διαφορετικά φυςικά αρχεία ςτο ίδιο FILEGROUP
54
Απόδοςη SQL ερωτημϊτων
Βελτιϊνουμε τθν απόδοςθ JOIN ερωτθμάτων όταν:
Προτιμοφμε τθ χριςθ JOIN από το subquery (εκτόσ και αν πρόκειται για λίγεσ εγγραφζσ / δεν υπάρχει ευρετιριο ςτισ ςτιλεσ που κάνουμε JOIN)
Ελζγχουμε τι ακριβϊσ εκτελεί ο SQL Server εξετάηοντασ τα execution plans που μασ παρζχει
55
T-SQL
Transact-SQL: Ενιςχυμζνθ SQL που προςφζρει χαρακτθριςτικά που αφοροφν μόνο τον SQL Server (system functions κτλ)
Τι αλλάηει ςτον SQL Server 2005: Exception handling
TOP(expression)
PIVOT/UNPIVOT
RANK
SNAPSHOT Isolation
VARCHAR(MAX), VARBINARY(MAX)…
Κτλ κτλ κτλ…56
CLR
Το Common Language Runtime (CLR) είναι Virtual Machine του .NET Framework
Το CLR ζχει πλζον «ενςωματωκεί» ςτον SQL Server άρα μασ δίνεται θ δυνατότθτα να χρθςιμοποιιςουμε όλο το .NET Framework μζςα ςτον SQL Server
C#, Visual Basic .NET,..
ADO.NET
Τι κερδίηουμε:
Μποροφμε να χρθςιμοποιιςουμε μια πλοφςια γλϊςςα με διαδικαςτικι λογικι για να γράψουμε functions, stored procedures κτλ.
Μπορϊ εφκολα να ζχω πρόςβαςθ ςε εξωτερικζσ πθγζσ
T-SQL και CLR
Transact SQL (T-SQL)
(Microsoft® SQL 2000)
.NET Languages (Microsoft®
SQL Server™ 2005)
User Defined
FunctionsX X
Stored Procedures X X
Triggers X X
User-Defined
TypesX
Aggregates X
VS .NET
ProjectAssembly:
“TaxLib.dll”
VB,C#,C++ Build
SQL Server
SQL Data Definition: create assembly …
create function …
create procedure …
create trigger …
create type …
SQL Queries: select
sum(tax(sal,state))
from Emp where county
= ‘King’
Runtime
hosted by SQL
(in-proc)
Η διαδικαςύα…
XML τύποσ δεδομϋνων
Ο XML τφποσ δεδομζνων είναι ενςωματωμζνοσ ςτο SQL Server 2005, οπότε μπορεί να χρθςιμοποιθκεί :
ωσ τφποσ δεδομζνων ςε ςτιλθ κάποιου πίνακα
ωσ παράμετροσ ςε stored procedure
ωσ τφποσ δεδομζνων ςε τιμι που επιςτζφεται απόuser-defined function
ωσ τφποσ δεδομζνων μεταβλθτισ
XML ςτόλη
Μπορεί να αποκθκεφςει XML ζγγραφο
XML ςτόλη
Δεν είναι απλά TEXT!!
Υποςτθρίηει τισ κλαςικζσ XMLτεχνολογίεσ/τεχνικζσ:
Επικφρωςθ (validation) με κάποιο XML Schema
Ειδικά ευρετιρια για XML
Υποςτιριξθ XQuery και XPath 2.0
Συγκεκριμζνεσ λειτουργίεσ που αφοροφν μόνο XML:
FOR XML
OpenXML
Υλικό
Microsoft at University of Piraeus: http://msdnaa.cs.unipi.gr/
SQL Server home: http://www.microsoft.com/sql/default.mspx
SQL Server tech center: http://technet.microsoft.com/en-us/sqlserver/default.aspx
SQL Server development center: http://msdn2.microsoft.com/en-us/sqlserver/default.aspx
Άρκρα για βελτίωςθ τθσ απόδοςθσ του SQL Server: http://www.sql-server-performance.com/
SQL Server 2008: http://www.microsoft.com/sql/2008/default.mspx
SQL Server 2008 e-book: http://csna01.libredigital.com/?urss1q2we6
SQL Server 2008 εκπαιδευτικό υλικό: http://sqlserver2008jumpstart.microsofttraining.com/content/info.asp?CcpSubsiteID=69&infoid=27
63
64
Gerasimos Marketos
http://infolab.cs.unipi.gr/people/marketos
Επικοινωνία
University of Piraeus,
Information Systems Laboratory
80-82 Zeas Str., 18534 Piraeus, Greece
3rd Floor
Phone: (+30) 210 4142437
http://infolab.cs.unipi.gr