Microsoft SQL Server

SQL Server Beskrivelse av bilde-Logo-sql2012.png. Beskrivelse av Microsoft SQL Server 1 11 Network Enhancements.png-bilde. Informasjon
Utviklet av Microsoft
Første versjon 24. april 1989
Siste versjon 2019 (4. november 2019)
Skrevet i C ++ , C og C #
Operativsystem Linux , Microsoft Windows og Windows Server
Les formater SQL Server Reporting Services Report Definition Language ( d ) and SQL Server Reporting Services Report Definition Language (UTF-8) ( d )
Skriftlige formater SQL Server Reporting Services Report Definition Language ( d ) and SQL Server Reporting Services Report Definition Language (UTF-8) ( d )
Type Relasjonelt databasestyringssystem ( in )
Tillatelse Proprietær lisens og EULA
Nettsted www.microsoft.com/sql-server

Microsoft SQL Server er et databasesystem (DBMS) på SQL- språksom blant annet inneholder et RDBMS ( relasjons- DBMS ") utviklet og markedsført av Microsoft- selskapet. Det fungerer under Windows og Linux OS (sidenmars 2016), men det er mulig å starte den på Mac OS via Docker , fordi det er en versjon for nedlasting på Microsoft-siden.

Historisk

Selv om den opprinnelig ble utviklet av Sybase og Microsoft, var Ashton-Tate også tilknyttet den første versjonen, utgitt i 1989. Denne versjonen ble gitt ut på Unix- og OS / 2-plattformene . Microsoft har siden portet dette databasesystemet til Windows .

Da den ble opprettet, arvet Sybase SQL Server prinsippene til Ingres-motoren som opprinnelig ble utviklet av University of Berkeley.

I 1994 ble partnerskapet mellom de to selskapene brutt, Microsoft ga ut versjon 6.0 og deretter 6.5 alene på Windows NT-plattformen.

Microsoft SQL Server er nå en del av Microsofts tekniske databasestrategi. MSDE-motoren, som er grunnlaget for SQL Server, skal til slutt erstatte Jet-motoren (den som administrerer Access- databasene ) i applikasjoner som Exchange og Active Directory .

2005- versjonen av SQL Server ble utgitt den3. november 2005på samme tid som Visual Studio 2005 . Støtte for Windows Vista og Windows Server 2008 ble ikke lagt til før Service Pack 2 (SP2). Foreløpig er Service Pack 3 tilgjengelig. Optimizer har blitt fullstendig omgjort, det samme har forholdsmotoren.

2008- versjonen av SQL Server (kodenavnet Katmaï) ble utgitt i august 2008 . 2008 R2 mindre versjon ble utgitt i 2010.

2012-versjonen av SQL Server ble utgitt i april 2012 .

2014-versjonen av SQL Server ble utgitt den 1 st april 2014 med en "in memory" -motor som er komplementær til relasjonsmotoren.

SQL Server 2016-versjonen ble utgitt den 1 st juni 2016.

Under utviklingen av 2005-versjonen var prosjektet den gang et av de største IT-prosjektene i verden. Mer enn 1600 utviklere har deltatt i kodingen av kjernen, og det anslås at mer enn 10.000 andre mennesker har jobbet med den direkte eller indirekte ( interaksjoner mellom mennesker og maskiner , dokumentasjon, oversettelse, etc.).

Spesielle egenskaper

SQL Server skiller seg ut fra konkurrentene ved sin store rikdom som ikke krever noen ekstra betalte alternativer innenfor grensen for den valgte versjonen.

Multi-base, multi-ordning

Sammenlignet med konkurrentene Oracle , MySQL eller PostgreSQL , kjennetegnes SQL Server av det faktum at det er et RDBMS (Relational Database Management System) opprinnelig multibase og multi- skjema . Det er mulig å lage native inter-base-spørsmål. For eksempel kobler følgende spørsmål to tabeller fra to forskjellige databaser:

SELECT * FROM   BASE_A.dbo.TABLE1 AS T1        INNER JOIN BASE_B.dbo.TABLE2 AS T2              ON T1.ID = T2.ID;

Optimizer er i stand til å lage en perfekt optimalisert spørringsplan selv om spørringen konsulterer data fra flere databaser ...

Selv om PostGreSQL er multibase og multischema, er denne muligheten for samtidig avhør ikke innfødt, og det er nødvendig å gå forbi formidleren av "dblink" som forbyder sammenføyning og dermed enhver mulighet for optimalisering ... Oracle med sin versjon 12 prøver å integrere dette samme begrepet multibase (kalt multi- tenant ), men lider av det samme problemet som PostGreSQL. MySQL er enkelt skjema, multibase.

SQL-skjemahåndtering

Fleksibiliteten til SQL-skjemaadministrasjon er slik at det er mulig å overføre et objekt fra ett skjema til et annet med en enkelt kommando ALTER SCHEMA.

Eiere skiller seg fra skjemaer, og det er mulig å overføre eierskapet til en database, et skjema eller et objekt fra en SQL-bruker til en annen, gjennom kommandoen ALTER AUTHORIZATION.

Parallelisme

SQL Server fungerer naturlig parallelt. Så snart et spørsmål er estimert til å overskride kostnadsterskelen som en spørringsplan kan parallelliseres til, omskriver SQL Server planen ved hjelp av algoritmer med flere tråder, og hvis den nye planen viser seg å være billigere, skjer erstatningen automatisk. Denne funksjonen finnes i alle utgaver og er ikke en betalt modul å legge til i tillegg til Oracle.

Fysiske lese- og skriveoperasjoner drar også fordel av systematisk parallellitet ettersom IO-operasjoner utføres direkte av SQL Server og ikke gjennom systemlaget, slik tilfellet er med PostGreSQL eller MySQL.

Kompresjon

I Enterprise-versjonen er motoren i stand til å komprimere data på rad- eller sidenivå i tabeller så vel som i indekser. Backup-komprimering er tilgjengelig fra standardutgaven siden versjon 2008 R2.

Hot backup

Siden SQL Server 7 (1998) har SQL Server gjort det mulig å sikkerhetskopiere "åpen database" uten å forstyrre datatjenesten og uten å forstyrre brukeraktiviteten. Denne sikkerhetskopien kan gjøres globalt, etter filgruppe, etter fil eller gjennom transaksjonsloggen.

Unikt ... unntatt NULL!

I SQL Server tar unikt begrensningene hensyn til NULL-markøren som en verdi, og forbyder derfor tilstedeværelsen av mer enn en NULL i kolonnene til en slik begrensning. Dette er ikke i samsvar med SQL-standarden siden NULL er et fravær av verdi, oppstår ikke unikhet. Det er imidlertid en enkel måte å omgå dette problemet, som er å lage en unik filtrert indeks som vil forholde seg til de verdsatte dataene.

Eksempel, la tabellen:

CREATE TABLE T_EMPLOYE_EMP (EMP_ID            INT PRIMARY KEY,  EMP_NOM           VARCHAR(32) NOT NULL,  EMP_MATRICULE     CHAR(8));

Siden personnummeret må være unikt for de kjente verdiene, gjør opprettelsen av en unik indeks filtrert på verdiene som er uttrykt i kolonnen for personellnummer, det mulig å løse problemet:

CREATE UNIQUE INDEX X_EMP_MATRICULE    ON T_EMPLOYE_EMP(EMP_MATRICULE)    WHERE EMP_MATRICULE IS NOT NULL;

Gå inn på utløsere på nytt ("mutant" tabell)

I SQL Server-utløsere er det mulig å oppdatere måltabellen for hendelsen ved utløpet av utløseren, i motsetning til mange databaser som forbyr denne muligheten ("mutant tabell" -feil i Oracle). Det må huskes at det var Sybase som opprinnelig oppfant begrepet trigger i 1986, og dermed satte kjørbar kode i en relasjonsdatabase for første gang.

For eksempel kan en trigger UPDATEpå en tabell endre dataene som venter på endring:

CREATE TRIGGER E_U_PERSONNE ON T_PERSONNE_PRS FOR UPDATE AS IF UPDATE(PRS_NOM) UPDATE T_PERSONNE_PRS SET PRS_NOM = UPPER(PRS_NOM) WHERE PRS_ID IN (SELECT PRS_ID FROM inserted);

I eksemplet ovenfor er navnene på nylig innsatte eller endrede navn store og små.

Siden reentrering kan føre til rekursjon, tillater forskjellige innstillinger dette problemet å løses på databasenivå, så vel som på forekomstnivå.

Automatiserte indekserte visninger

I motsetning til Oracle eller PostGreSQL hvor materialiserte visninger mesteparten av tiden må oppdateres før bruk, er SQL Server-indekserte visninger alltid synkron. I tillegg er optimalisereren i stand til å erstatte den indekserte visningen for hele eller deler av spørringen (Enterprise-versjonen), noe som er veldig praktisk når DBA ikke har tilgang til koden til klientprogrammer (tilfelle av applikasjoner fra redaktører) .

Automatisk pooling

For applikasjoner som er designet i .net og bruker ADO-kontakten, utfører SQL Server automatisk pooling. Det enkle faktum å skille mellom to tilkoblingskjeder er nok til å skape to forskjellige bassenger. For at pooling skal være effektiv, må tilkoblingene være stengt når databehandlingen har funnet sted.

Sentralisert administrasjon

På forskjellige måter lar SQL Server deg sentralt administrere et sett med servere. Du kan opprette en sentralisert administrasjonsserver, og legge til en liste over selskapets SQL-servere for å starte spørsmål som sendes samtidig på alle serverne, ellers opprette eller utføre den samme prosedyren på alle serverne samtidig, dette i SSMS-verktøyet (SQL Server Management Studio).

På samme måte lar oppgaveplanleggeren og varslingsbehandleren (SQL Agent) deg definere jobber for flere servere, for eksempel sikkerhetskopiering, defragmentering av indekser, omberegning av statistikk eller kontroll av fysisk integritet.

Funksjoner for utvikling

SQL Server OLTP-motoren har mange funksjoner som det ville være vanskelig å liste dem alle. Her er noen som gjør forskjellen med lettere DBMSer som MySQL eller PostGreSQL ...

Tabell, indeks og "In Memory" -prosedyre

SQL Server har blitt utstyrt med en "In Memory" -motor siden versjon 2014. Tabeller og indekser kan være totalt i minnet (struktur og data: data og skjema) eller vedvarende på strukturnivå (kun data). Prosedyrer, innenfor veldefinerte rammer, kan kompileres naturlig, snarere enn tolkes. Oppdateringene forblir transaksjonsmessige, uten at det er behov for å skrive til transaksjonsloggfilene ("i minnet" versjonering). Dette tillater meget betydelige forbedringer i ytelsen for behandling av komplekse beregninger knyttet til store datamengder. Et typisk eksempel er beregningen av den økonomiske ytelsen til aksjemarkedsprisene i sanntid.

Intra join (APPLY)

SQL Server var den første med versjon 2005 som introduserte intra-join-operatøren APPLYfor å lette henting av data innkapslet i en virtuell tabell fra en tabellkolonne, slik det er tilfelle når du bruker en tabellfunksjon i et spørsmål der ett av argumentene kommer fra en av tabellene i spørringen, eller når XML er tabellert. Operatøren APPLYmå være nøkkelordet foran CROSSeller OUTERfor å kunne definere oppførselen. Med CROSShvis argumentet er NULL, blir de berørte radene fjernet fra resultatet mens OUTERde er bevart.

Operatøren APPLYer lik operatøren LATERALav SQL-standarden, men den mer utvidede syntaksen tillater operasjoner som LATERALikke kan utføres. Oracle introduserte nylig denne operatøren i versjon 12.1 (2014).

SELECT top 10 * FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) OUTER APPLY sys.dm_exec_query_plan(qs.plan_handle) ORDER BY total_worker_time DESC

I dette eksemplet bruker vi sys.dm_exec_query_plan tabellfunksjonen, som returnerer kjøringsplanen, fra planen "håndtak" levert av "plan_handle" -argumentet som finnes i sys.dm_exec_query_stats-visningen. Denne spørringen lar deg finne ut de 10 spørringene som har brukt mest CPU-tid siden forekomsten ble startet.

Snacks (bokstavelig sortering)

SQL Server har en av de rikeste samlingene av samlinger (3887 i 2014-versjonen), slik at du kan kontrollere 101 språk, blant annet det er bretonsk og korsisk! Sorteringene lar deg utføre søk med tanke på eller ikke tilfelle (store bokstaver, små bokstaver - CS / CI), aksenter og andre diakritiske tegn (aksenter, cedilla, ligaturer ... - AS / AI), bredde tegn (2 = 2  ? - WS) eller forskjellige typer kana (katakana og hiragana fra japansk - KS), eller til og med for å utføre binære sammenligninger med tanke på eller ikke heksadesimalkoden. Kollasjonene er helt uavhengige av tegnsettene (Iso_1-settene), selv om de lar dem simuleres (ASCII, UNICODE, UTF16, EBCDIC ...). Sorteringsstøtte tilbys på fire nivåer: server (1), base (2), tabell eller visningskolonne (3) og til slutt predikat (4) håndtering av tegnstrenger og sortering av tekstkolonner i spørsmål.

SELECT * FROM T_UTILISATEUR_APPLICATIF_UTA WHERE UTA_CONNEXION = 'Éric Blüm' COLLATE French_CI_AI AND UTA_MOT_DE_PASE = 'a²E3wx+Z' COLLATE Latin1_General_CS_AS_WS

I det følgende eksemplet ser vi etter et tilkoblingsnavn med en "løs" sortering (uavhengig av sak eller aksenter) og passordet med en "stram" sortering (binær):

Listen over sorteringer tilgjengelig på serveren kan fås ved spørringen:

SELECT * FROM sys.fn_helpcollations()

XML-data

Siden versjon 2005 støtter SQL Server XML-typen (fragment) og lar deg manipulere XML via XQuery / XPath-spørsmål. En XML-kolonne kan skrives gjennom en XML Schema Collection (XSD - Xml Schema Definition). Følgende eksempel viser hvordan du oppretter en XML-skjemasamling for et enkelt element, og oppretter deretter en tabell med en skrevet XML-kolonne med den skjemasamlingen:

-- création d'un schéma XML pour validation des données d'une colonne XML CREATE XML SCHEMA COLLECTION XSC_DONNEES_ENTREPRISE as N' <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:company="http://www.exemple.com/entreprise" targetNamespace="http://www.exemple.com/entreprise" elementFormDefault="qualified"> <xs:element name="personnel"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="employe"> <xs:complexType> <xs:all> <xs:element name="nom" type="xs:string" /> </xs:all> <xs:attribute name="matricule" type="xs:ID" /> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema>'; -- création d'une table qui possède une colonne de type XML dont les données doivent se conformer au schéma ci avant CREATE TABLE T_ENTREPRISE_EMPLOIS_EEP (EEP_ID INTEGER PRIMARY KEY IDENTITY, EEP_NAME VARCHAR(12), EEP_XML_DATA XML (XSC_DONNEES_ENTREPRISE) --> création d'une colonne XML typée par XSC_DONNEES_ENTREPRISE (collection de schémas XML) );

Et utdrag SELECT-spørring kan generere XML-utgang i stedet for et tabellresultat, via Transact-SQL "FOR XML" -delen som det er mange presentasjonsalternativer for. Eksemplet nedenfor brukes til å presentere et XML-hierarki som viser begrensningene til en tabell i form av XML-elementer:

SELECT TABLE_SCHEMA AS schemaSQL, TABLE_NAME AS nomTable, CONSTRAINT_NAME AS nomContrainte, CONSTRAINT_TYPE AS typeContrainte FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS contrainte WHERE TABLE_NAME = 'DepartementFrancais' FOR XML AUTO, ELEMENTS, ROOT('Contraintes');

Dette spørsmålet vil for eksempel returnere følgende data:

<Contraintes> <contrainte> <schemaSQL>Reference</schemaSQL> <nomTable>DepartementFrancais</nomTable> <nomContrainte>pk_DepartementFrancais</nomContrainte> <typeContrainte>PRIMARY KEY</typeContrainte> </contrainte> <contrainte> <schemaSQL>Reference</schemaSQL> <nomTable>DepartementFrancais</nomTable> <nomContrainte>chk_DepartementFrancais_ForceSTSRid</nomContrainte> <typeContrainte>CHECK</typeContrainte> </contrainte> <contrainte> <schemaSQL>Reference</schemaSQL> <nomTable>DepartementFrancais</nomTable> <nomContrainte>UK_DepartementFrancais_NomChefLieu</nomContrainte> <typeContrainte>UNIQUE</typeContrainte> </contrainte> <contrainte> <schemaSQL>Reference</schemaSQL> <nomTable>DepartementFrancais</nomTable> <nomContrainte>UK_DepartementFrancais_Nom</nomContrainte> <typeContrainte>UNIQUE</typeContrainte> </contrainte> </Contraintes>

Til slutt er det mulig å håndtere XML-data direkte i rutiner (for eksempel fra filer), ved å bruke funksjonene og prosedyrene OPENXML, sp_xml_preparedocument, sp_xml_removedocument ...

Integrert geografisk informasjonssystem (GIS)

Siden versjon 2008 integrerer SQL Server et GIS i alle versjoner. Dette muliggjør konstruksjon av geometriske (euklidisk geometri) eller geografiske (med tanke på den romlige krumningen av jordskorpen) objekter ved bruk av GEOMETRY og GEOGRAFI (typer, POINT, LINESTRING, POLYGON og kombinasjoner ...). Den er basert på OGC- standarden , akkurat som det romlige tillegget PostGIS for PostgreSQL . 2012-versjonen la til buede objekter (CircularStrings, CompoundCurves, CurvePolygons ...) og bedre presisjon av beregninger (48 bits i stedet for 27 tidligere).

Romlige indekser gjør det mulig å lage visse metoder som STContains, STDistance, STEquals, STIntersects, STOverlaps, STTouches, STWithin ...

I samsvar med SQL-standarden som tilbyr DATALINK, implementerer SQL Server et lignende verktøy kalt FileStream, slik at filer kan lagres som filer i operativsystemet, men under ansvar og kontroll av databaseserveren (serialisering, transaksjon, pålitelighet, sikkerhet. ..). Dette tillater blant annet en integrert og synkron sikkerhetskopi av relasjons- og ikke-relasjonsdata, for eksempel for produktbilder på et nettsted, for eksempel elektroniske PDF-håndbøker for maskiner i en flåte for vedlikehold. Dette verktøyet brukes spesielt til EDM. Elektroniske filer som kan være underlagt tekstindeksering.

I tillegg og siden versjon 2012, tilbyr SQL Server konseptet FileTable, som ikke er noe mer enn en virtuell tabell tilknyttet et inngangspunkt (katalog) til datasystemet, for å tillate toveis styring av elektroniske filer: filene håndteres av SQL-språket er tilgjengelig i Windows-filsystemet og omvendt: en fil eller en katalog kan settes inn i tabellen ved hjelp av et SQL-spørsmål, og sistnevnte vil bli sett i systemtreet.

Sharepoints kunnskapsadministrasjonsverktøy bruker massivt dette konseptet til å administrere de elektroniske dokumentene som er deponert der, og alle forbigående versjoner.

Nettjenester

Introdusert med versjon 2008, ble muligheten til å opprette opprinnelige webtjenester direkte på serveren ved hjelp av SOAP / HTTP-endepunkter, ansett som utfaset i versjon 2008 R2 og pensjonert i versjon 2012. Imidlertid lar SQL Server deg lage og bruker internt mange endepunkter for bestemte tjenester som databasespeiling eller servicemegler ...

Meglerservice

Målet med Service Broker er å tilby et databasemeldingsverktøy for å administrere datastrømmer mellom SQL-servere asynkront, serielliseres og behandles gjennom køer som er systemtabeller. Dette gjør det mulig å opprette SODA (Service Oriented Database Architecture), dvs. databaser av forskjellige forekomster som dialoger med hverandre på datanivå og ikke lenger på applikasjonsnivå som det er tilfelle med SOA.

Dette gjør det mulig å lage distribuerte, samarbeidende og distribuerte databaser, "grid computing" eller til og med WorkFlow, og for eksempel å gi en bedre angrepsflate for svært konkurransedyktige tilganger. Dette systemet skiller seg fra datareplikering, ved at informasjonen hovedsakelig overføres i XML-form (kryptert), på HTTP-laget (for eksempel Internett) ved hjelp av webtjenester og at det ikke er noen forpliktelse for opprinnelses- og destinasjonsdatabaser og strukturene skal være identisk.

Et interessant eksempel er å erstatte tradisjonelle meldingsverktøy som MQ Series, med en slik enhet, mye mer pålitelig ...

Service Broker kan brukes via gratisutgaven av SQL Server Express, den har blitt brukt spesielt i bransjen for å administrere produksjonsinformasjonen til mange maskiner i samme flåte for å sende disse dataene til en sentral server. Dette er spesielt tilfelle for vaksineproduksjonskjeden til et kjent fransk institutt.

Funksjoner for administratoren

I tillegg til funksjonene for utvikleren, presenterer SQL Server mange verktøy for å lette administrasjonen. Her er noen få.

Datareplikering

For ikke å forveksle med "høy tilgjengelighet" som består i å duplisere en hel database, har SQL Server 8 datareplikeringsmodi (replikering av viss informasjon fra visse tabeller som kommer fra databaser til andre databaser på andre servere) inkludert transaksjonsmessige, punkt-til-punkt , øyeblikksbilde eller flettemodus. Replikering fra og til Oracle støttes også i Enterprise-utgaven.

Nettsalgssider som Cdiscount , Fnac.com eller Vente-privee.com bruker replikering, begge deler for å skille data fra FO (Front Office - hovedsakelig nettsidata) og BO (Back Office - administrasjon). Fakturaer, forsendelser, lager. ..), men også for å utvide angrepsoverflaten for å absorbere belastningen til de mange brukerne.

Høy tilgjengelighet

Duplisering av databaser for å etablere et svært elastisk system oppnås på fire forskjellige måter:

  • "  Loggforsendelse  " ved å sende sikkerhetskopi av transaksjonsloggen og bruke transaksjoner på nødbaser på nytt. Asynkront manuelt vippesystem. Tap begrenset til ventetiden til å sende logger. Opererer base for base.
  • "  Speiling  " ved å sende pulserte endrede sider i transaksjonsloggen til standby-basis. Transparent system for applikasjoner (.net eller ODBC) i synkron eller asynkron modus med manuell eller automatisk bytte (hvis synkron) base for base. Null ventetid for failover hvis synkron og i automatisk modus. Bare ett speil tolereres per database, og for automatisk failover er en vitneserver (for eksempel gratis Express-versjon) nødvendig for å unngå "split brain" -syndromet.
  • "  Klynging  " etter serverredundans (opptil 64 aktive eller passive noder) som deler en stasjonsbrønn ( Del ingenting ), som du kan legge til IO-replikeringssystem for bukten for å unngå SPOF ( Single Point of Failure ). Lar deg bytte hele forekomsten manuelt eller automatisk i henhold til reglene som skal implementeres. Alltid synkron data. Omstillingstid avhengig av det etablerte scenariet, men vanligvis noen få titalls sekunder til noen få minutter.
  • “ AlwaysOn  ” -teknologi  : kombinerer speiling og Failover Cluster (FCI for Failover Cluster Instance ) slik at forskjellige baser kan assosieres innenfor tilgjengelighetsgrupper, noe som sikrer kollektiv failover av alle baser i tilfelle en feil på en av dem. Dem i en gruppe. Når det gjelder speiling, er systemet gjennomsiktig for applikasjoner (.net eller ODBC) i synkron eller asynkron modus med manuell eller automatisk bytte (hvis synkron) gruppe for gruppe. Failover latency er null hvis synkron modus er brukt. Antall "kopier" av samme tilgjengelighetsgruppe er begrenset til 10: 8 asynkrone og 2 synkrone. En enkelt tilgjengelighetsgruppe som kan inneholde mer enn hundre databaser.

Strategiledelse (administrasjonspolitikk - policy management)

Det er mulig å lage forretningsregler og planlegge driften. Dette er for å verifisere en attributt til en fasett, via en regel som kan verifiseres på forskjellige måter. Noen eksempler:

  • sjekk en gang om dagen at hver database er sikkerhetskopiert
  • tvinge en navngivningsregel for tabeller, visninger, prosedyrer
  • forby systematisk bruk av standard SQL-skjemaet dbo

Database øyeblikksbilde

Denne prosessen gjør det mulig å opprette en ny database fra en eksisterende database som representerer dataene på det tidspunktet da øyeblikksbildet ble lansert. Denne skrivebeskyttede kopien utføres umiddelbart, uavhengig av volumet til den opprinnelige databasen. Dette tillater for eksempel:

  • få med sikkerhet alle dataene fra databasen på et bestemt tidspunkt
  • å kunne sammenligne de første og endelige dataene i utviklingen etter gjennomføring av en prosedyre
  • gå tilbake enten ved forespørsel om endring av databaser, eller ved å gjenopprette databasen fra øyeblikksbildet

Oppdeling

Presentasjon siden versjon 2005 i Enterprise-utgaven, gjør partisjonering det mulig å dele tabeller og indekser i henhold til et datakriterium i tabellen. den gjenbrukbare løsningen er veldig enkel og er basert på tre trinn:

  • Opprettelsen av de sentrale verdiene til partisjoneringen via en partisjonsfunksjon (CREATE PARTITION FUNCTION ...);
  • Opprettelse av et skilleventilasjonsskjema i de forskjellige lagringsplassene (CREATE PARTITION SCHEME ...);
  • Opprettelsen av tabellen eller indeksen som utnytter partisjoneringsskjemaet ved hjelp av et kriterium som må være en ikke-NULL-kolonne som er tilstede i definisjonen av objektet.

Når disse trinnene er fullført, kan funksjonen og partisjoneringsskjemaet gjenbrukes for et annet objekt for partisjonsjusteringsformål, for eksempel en fakturatabell og dens underordnede detalj eller radtabell. Av faktura.

Det er da mulig å administrere partisjonene (flytte, slå sammen, dele ...) varme ved å bruke ALTER PARTITION FUNCTION ... SPLIT RANGE / MERGE RANGE and ALTER TABLE ... SWITCH PARTITION ... kommandoer som gjengir hånden umiddelbart og handle på lavt nivå, i bakgrunnen, for å betjene bevegelsene.

Vedlikeholdsplan

Microsoft SQL Server tilbyr mange veivisere for å utføre ofte takknemlige oppgaver som import / eksport av data eller sikkerhetskopiering / gjenoppretting. Men hvis det er nyttig for nybegynnere, er det administrasjonsverktøyet for vedlikeholdsplan som lar deg utføre alle oppgavene som er viktige for å overleve og vedlikeholde ytelsen til en base med noen få klikk. Dette verktøyet gjør det blant annet mulig å utføre følgende oppgaver på en gjentakende basis:

  • sikkerhetskopi;
  • fysisk integritetskontroll;
  • defragmentering av indekser;
  • omberegninger av statistikk.

... og planlegg utførelsen.

Ressurssjefen

Fordi samlivet på lik linje med alle brukerne av samme base raskt kan utgjøre problemer, integrerer SQL Server en ressurssjef som tillater å tildele mer eller mindre ressurser (RAM, CPU, disker ...) til en bestemt gruppe brukere. Det klassiske tilfellet er en blanding av brukere som er glad i dashbord og rapporter av alle slag (for eksempel ledelseskontrollere) som bruker mye data, noe som straffer produksjonen av data fra brukere som utfører enhetsinngang ...

Datakvalitetsstyring

SQL Server integrerer to forskjellige moduler for å administrere kvalitetsdata i databasene:

  • Data Quality Services (DQS): lar deg administrere kvaliteten på data i relasjons- og beslutningsdatabaser interaktivt og gjennom en kunnskapsbase: rengjøring, korreksjon, berikelse, standardisering, deduplisering, etc.
  • Master Data Services (MDS): er SQL Server master data management-løsningen.

Integrert e-postsendingstjeneste

Database Mail er SQL Servers e-postadministrasjonsverktøy og er basert på Service Broker. Dette systemet gjør det mulig å definere flere e-postsendingsprofiler (for eksempel en for applikasjonene og den andre for administrasjonen) med mulig redundans av SMTP-serverne. Sending av e-post brukes spesielt av SQL Agent for noen ganger å varsle suksessen, men ofte feil, for planlagte oppgaver (for eksempel at en sikkerhetskopi ikke kunne gjøres). Prosedyren msdb.dbo.sp_send_dbmail brukes til å sende en e-post, inkludert med vedlegg, søkeresultat, innhold i tekst eller beriket form ...

Revisjonsverktøy

SQL Server er rik på revisjonsverktøy, enten det er for sikkerhet, datautvikling eller ytelse. Vi vil beskrive noen av dem.

Sikkerhetsrevisjon (Database Audit)

I tillegg til at C2-revisjonen er foreldet for å bli erstattet av de vanlige kriteriene (ISO 15408 ), tilbyr SQL Server muligheten for å spore alt relatert til sikkerhet gjennom databasekontroll, og alle mulige handlinger både på servernivå og på nivå med en bestemt database.

Dette systemet er perfeksjonert til det punktet at det er mulig å stoppe serveren automatisk i tilfelle svikt i revisjonssystemet, slik at inntrengere ikke utnytter denne tilstanden av sporbarhetsfeil for å utføre ulovlige manøvrer!

Datautvikling

SQL Server har to moduser som lar deg automatisk spore utviklingen av data (INSERT, UPDATE, DELETE ...):

  • ENDRE SPORING: tilgjengelig fra Standard-utgaven, det er mulig å indikere hvilke rader av hvilke tabeller som har endret seg innenfor et mål og en konfigurerbar tidsperiode.
  • ENDRE DATAFANGST (CDC): tilgjengelig i Enterprise-utgaven, kopierer oppdateringsinformasjon i arbeidstabeller med angivelse av dato og klokkeslett for endringene.

ENDRE SPORING tvinger tabeller til å bli skannet i databasen, men avlaster det totale volumet, mens CDC ikke spør etter produksjonsdata for å avlaste låsning.

Disse to modulene brukes vanligvis, enten den ene eller den andre, for å forsyne store datalager i differensialmodus .

Fremførelser

Mengden av verktøyet er så rikelig at mange brukere ignorerer dem, og ser andre steder i tredjepartsverktøy - ofte betalt - for det de allerede har, og gratis ved fingertuppene.

Data Management View (DMV)

Dette er systemdata som presenterer SQL-motorutførelsesstatistikk som kan brukes i tabellform av pseudovisninger (faktisk interne funksjoner som oftest returnerer en tabellstatus for dataene som er samlet inn i minnet). Dette gjør det mulig å etablere forskjellige diagnoser som:

  • ventetider: sys.dm_os_wait_stats
  • den gjeldende aktiviteten på serveren: sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests;
  • bruk og fragmentering av indekser: sys.dm_db_index_usage_stats, sys.dm_db_index_operational_stats, sys.dm_db_index_physical_stats;
  • de estimerte manglende indeksene: sys.dm_db_missing_index_details, sys.dm_db_missing_index_groups, sys.dm_db_missing_index_group_stats;
  • den dyreste behandlingen: sys.dm_exec_query_stats, sys.dm_exec_procedure_stats, sys.dm_exec_trigger_stats;
  • transaksjonene (og deres følge låsene): sys.dm_os_tran_ * (mer enn 10 DMV) ...
  • cache-administrasjon: sys.dm_os_memory_ * (mer enn 10 DMV-er) ...
  • filbehandling: sys.dm_db_file_space_usage, sys.dm_db_log_space_usage, sys.dm_io_virtual_file_stats, sys.dm_os_volume_stats ...
  • trådene: sys.dm_os_threads, sys.dm_os_tasks, sys.dm_os_workers, sys.dm_os_dispatcher_pools, sys.dm_os_nodes ...
Rapporter

Basert på DMV, rapporter utnytter og presenterer dataene på en syntetisk måte. De er tilgjengelige på forskjellige nivåer av SQL Server Management Studio Object Explorer-treet, primært på serveren (forekomst) og basenivå.

Ytelsestellere

SQL Server publiserer mange ytelsestellere som kan spørres direkte i SQL, eller som kan analyseres ved hjelp av ytelsesmonitoren (perfmon.exe). Disse tellerne er lesbare i sys.dm_os_performance_counters-visningen.

Varsler

SQL Server lar deg sette opp varsler om feil eller beregninger som krysser en terskel gjennom SQL Agent ved å spørre ytelsestellerdata eller via WMI (Windows Management Instrumentation). Denne typen varsel gjør det mulig for eksempel å bli informert via e-post om metning av transaksjonsloggene eller fylling av serverdiskene.

Database Engine Tuning Advisor

Dette verktøyet brukes til å utføre en diagnose av indeksering, statistikk, partisjonering eller opprettelse av indekserte visninger når den er utstyrt med en rekke spørsmål.

Profilering av SQL

SQL-profilen lar deg snuse spørsmål før og etter utførelse for å gi beregninger for analyseformål, hovedsakelig for å forbedre ytelsen (selv om det er en "utdatert" modus for å se foreldet kode fra noen applikasjoner).

Disse dataene lagres i en tabell eller en fil (kan overføres til en tabell) og må deretter analyseres. Ulike maler tillater større eller mindre nivåer av skanning.

"Replay" -malen gjør det mulig å fange en belastning og dens beregninger som kan spilles på nytt under de samme forholdene (simulering av forskjellige brukere parallelt) for benchmarkingsformål, spesielt for endringer i versjoner av SQL Server, som i maskinvare. For å spille på nytt og sammenligne, må du bruke RML-pakken som er tilgjengelig gratis på Microsoft-siden.

Utvidede hendelser (XE: eXtended Events)

Som et komplement og fremtidig erstatning av profilen, tillater XE en dypere inntrenging enn profilen, siden den kan skanne nesten alle målinger av operasjoner i minnet, i tråder eller i disk-IOer (systemnivå). Dette er i tillegg til hva profilen allerede gjør.

Datasamler

Fordi dataene til DMV-ene i utgangspunktet er ustabile (eksisterer bare i minnet, de går tapt ved hver omstart) eller begrenses (i en minnering) ble det besluttet å lage dette verktøyet som syklisk registrerer forskjellige data fra forskjellige kilder. (Hovedsakelig fra DMV) for tilbakemeldingsformål gjennom spesifikke rapporter. For å gjøre dette må det opprettes en samlingsdatabase, og du må starte de forskjellige forhåndsdefinerte samlerne, eller opprette dine egne samlere.

Distribuert avspilling

Denne enheten gjør det mulig å spille av aktiviteten til en server fanget av et spor av SQL Profiler, ved å simulere en aktivitet nær virkeligheten, ved hjelp av en distribusjon av forespørsler på forskjellige arbeidsstasjoner, alt orkestrert av en kontroller. Målet er for eksempel å sammenligne utførelsesoverensstemmelsen til et program på en ny versjon av SQL Server eller under en maskinbytte (ytelsesforbedring).

Operasjon

Microsoft SQL Server tilbyr flere funksjoner:

Språk

For spørsmål bruker SQL Server SQL-språket i en av de mest SQL-kompatible dialektene, og Microsoft gjør det til et æresgjenstand å korrigere fra versjon til versjon noen tidligere feil arvet fra Sybase-motoren. Dialekten som brukes er T-SQL (Transact-SQL), en implementerings- SQL som støtter lagrede prosedyrer, brukerdefinerte funksjoner eller UDF (User Defined Function) og utløsere ( trigger ). XQuery- og XPath- språkene brukes på forskjellige nivåer for å manipulere XML-data i SQL-spørringer.

For dataoverføring bruker SQL Server formatet TDS (Tabular Data Stream) som er implementert i andre databaser (spesielt i Sybase- motstykket ) og hvis spesifikasjoner er offentlige. En åpen kildekode- implementering av en TDS-klient er tilgjengelig og danner grunnlaget for SQL Server-klienten for Mono  : FreeTDS- prosjektet .

SQL Server er utstyrt med to databasemotorer, den ene relasjonelle og den andre avgjørende, og det er mulig å gjøre spørsmål på MDX- eller DMX- språk spesifikt for dataanalyse for beslutningsgrunnlag.

R- og Python-språkene er integrert siden versjon 2016. Det er også mulig å utvikle SQL-rutiner (UDF, prosedyrer, utløsere) ved hjelp av et .net-språk som VB for .net eller C #.

Integritetslenker

I SQL Server-relasjonsmotoren er det mulig å definere koblinger mellom tabeller gjennom deklarative begrensninger for å garantere dataintegritet sterkt mellom referansetabell og underordnet tabell. Disse integritetskoblingene kan brukes til å endre eller slette koblede linjer i kjeden og støtte evolusjonsregler av typen NO ACTION, CASCADE, SET DEFAULT og SET NULL.

Transaksjoner

SQL Server er en transaksjonell DBMS . Den er i stand til å forberede modifikasjoner av dataene i en database og validere eller kansellere dem atomisk, det vil si i "alt eller ingenting". Dette garanterer konsistensen og integriteten til informasjonen som er lagret i databasen. Under en transaksjon er datasettene som inneholder radene med data som blir endret av denne transaksjonen, låst. De andre brukerne må vente til slutten av transaksjonen for å kunne endre dem igjen. På den annen side kan samtidige brukere valgfritt lese dataene, selv om de har blitt låst for modifisering av en annen transaksjon, avhengig av det valgte isolasjonsnivået.

Isolasjonsnivå og låsing

Låser utføres på rad-, side-, utvidelses-, tabell- eller databasenivå. SQL Server låser bare ressursene den trenger (rader som standard) og kan etter behov låses på et høyere nivå (partisjon eller tabell). Dette eliminerer behovet for brukere å vente på slutten av en transaksjon for å oppdatere datarader som ikke har blitt påvirket av en endring, og bidrar til å redusere mengden ressurser som forbrukes. Låsing kan være pessimistisk - samtidige brukere vil ikke kunne få tilgang til radene i denne transaksjonen - eller optimistiske - i hvilket tilfelle samtidige brukere vil få tilgang til den nyeste versjonen av radene.

For å få dette til å fungere, lar SQL Server deg kontrollere isolasjonsnivået på seks forskjellige måter. De fire nivåene som følger av SQL-standarden

  • LES UKOMMITTERT
  • LES ENGAGET
  • GJENTAKbar LES
  • SERIALISERbar

... som er basert på pessimistisk låsing og to "optimistiske" nivåer:

  • STILLBILDE
  • LES ENGAGET STILLBILDE

Siden isolasjonsnivået er dynamisk, kan det endres i løpet av samme transaksjon. LES KOMMITTERT SNAPSHOT-isolasjonsnivå fungerer akkurat som Oracle eller PostGreSQL ved å overstyre LES KOMMITTET isolasjonsnivå med radversjonering for optimal låsing.

Transaksjonslogging

SQL Server lar deg spille transaksjoner på tre forskjellige måter:

  • automatisk validering: øyeblikkelig validering eller kansellering (i tilfelle feil) av hver SQL-ordre som startes (som standard);
  • implisitt modus: forbindelsen starter en transaksjon og sluttføringen (COMMIT eller ROLLBACK manual) avslutter transaksjonen for å starte en ny (SET IMPLICIT_TRANSACTIONS ON);
  • eksplisitt modus: initialiseringen av en transaksjon må gjøres med kommandoen BEGYN TRANSAKSJON.

I motsetning til Oracle eller PostGreSQL, overfører SQL Server til og med DDL (CREATE, ALTER, DROP ...) og DCL (GRANT, REVOKE ...) ordrer.

Det er mulig å definere transaksjonskontrollpunkter (SAVE TRANSACTION command) for å tillate en delvis avbestilling (ROLLBACK ...).

Transaksjonene blir registrert i transaksjonsloggen ("REDO-logg"), dataendringene er umiddelbart tilgjengelige i minnet og vil bli skrevet i datafilene under kontrollpunkter som startes periodisk og asynkront. Det er imidlertid mulig å tvinge et kontrollpunkt ved hjelp av CHECKPOINT-instruksjonen.

Transaksjonsloggen registrerer data forskjellig og gjør det på tre forskjellige måter:

  • Full modus: alle endringer blir registrert i loggen. Fullførte transaksjoner med data skrevet til disk blir slettet fra transaksjonsloggen under sikkerhetskopiering av transaksjoner.
  • Bulkloggingsmodus (BULK LOGGED): logger reproduserbare operasjoner minimalt (for eksempel å sette inn fildata, byggeindekser, etc.). Denne modusen gjør det mulig å øke hastigheten på driften av journalen. Men som i full modus, må loggen renses av en transaksjonell sikkerhetskopi.
  • Enkel modus: Lignende modus som massemagasinert modus, bortsett fra at journalen blir automatisk renset ved hvert kontrollpunkt.

I full- og bulkloggmodus må transaksjonsloggen lagres med jevne mellomrom ("REDO-logg"), ellers vil den vokse på ubestemt tid. Og takket være transaksjonssikkerhetskopien er det mulig å gjenopprette databasen slik den var når som helst til nærmeste sekund eller til nærmeste transaksjon (med imidlertid noen begrensninger for bulk journalført modus).

Det er mulig å hekke transaksjoner, men siden begrepet transaksjon er en tilstand av transaksjonen, er det ikke mulig å gjøre delvise kanselleringer på denne måten. Imidlertid er det andre måter å bevare noen av dataene fra tilbakeføringen av transaksjonen, inkludert gjennom tabellvariabler.

SQL Server støtter distribuerte transaksjoner gjennom Database Transaction Coordinator (DTC) som implementerer "to-fase forpliktelse" i henhold til XA-modellen.

Filer

Databaser er fysisk inneholdt i filer. Filene har vanligvis utvidelser:

  • MDF (Main Database File) for den første datafilen, inkludert noen vitale tekniske sider, inkludert databaselagringsstrukturen
  • NDF (Next Database File) for andre datafiler
  • LDF (Log Database File) for transaksjonsloggfiler

Filer er delt inn i 8196 byteblokker kalt sider og organisert i sett med 8 påfølgende sider kalt utvidelser. Inntil versjon 2000 var rader begrenset til en maksimumsstørrelse på 8060 byte (LOB-typen kolonner (bilde, tekst, ntext) teller ikke med denne grensen). Siden 2005-versjonen er det mulig å overskride denne grensen og gå opp til 2 milliarder byte. På den annen side er den nyttige størrelsen på siden 8096 byte .

Databaser kan bare fungere når alle filer er til stede, men lesing er mulig under gjenoppretting, gjennom konseptet med stykkevis gjenoppretting.

Datafilene er logisk gruppert i databasen i grupper av filer som utgjør destinasjonen til objektene i databasen (tabell, indeks, etc.). En gruppe filer regnes som lagringsenheten til en hvilken som helst tabell eller indeks, og hvis dette gruppen inneholder flere filer, deretter distribuerer SQL Server dataene i alle filene (tilsvarer en RAID 0), og lese- og skriveoperasjonene utføres parallelt i de forskjellige filene, under direkte kontroll av motorens SQL Server-lagring. Disse filene og filgruppene kan sikkerhetskopieres uavhengig selv om det er en logisk gjensidig avhengighet mellom objektene til en fil og en annen (referanseintegritet spesielt).

sikkerhet

På grunn av multibase-aspektet har SQL Server to sikkerhetsnivåer: servernivå, gjennom påloggingskontoer og basenivå, gjennom SQL-brukere.

Fra og med versjon 2005 har betydelige sikkerhetsendringer funnet sted i SQL Server-policyen.

I tillegg dekker sikkerhetsstrategien også funksjonaliteten til serveren. For eksempel er den lagrede prosedyren for xp_cmdshell for å starte systemkommandoer deaktivert, og bare DBA kan aktivere den på nytt . Så snart serveren er åpnet, blir alle filene i alle databasene låst for lesing og skriving for å forhindre uønsket tilgang.

Servicekontoer

Tjenestene som kjører hver forekomst av SQL Server, bruker en tjenestekonto (systemkontoen for å kjøre Windows-tjenesten). Sistnevnte må velges med omhu for å unngå mulige sikkerhetsbrudd på serveren. Dette kan være: System Service, Local Service (fra Windows 2003), Network Service (fra Windows 2003), lokal Windows-brukerkonto, domene brukerkonto. Det anbefales sterkt at du låser tillatelser på tjenestekontoer. I denne forstand, og fra versjon 2012, opprettes spesifikke kontoer med svært begrensede autorisasjoner under installasjonen for hver av SQL Server-tjenestene (SQL Server, SQL Agent, SSAS, SSIS, SSRS, etc.).

Påloggingskontoer

Tilkoblingskontoen brukes til å koble til en forekomst av SQL Server. For disse kontoene bør rettighetene som gjelder på servernivå defineres. Minimumsprivilegiet er "CONNECT" -privilegiet. Et eksempel på et servernivå privilegium er muligheten til å opprette en hvilken som helst database. I dette tilfellet er det OPPRETTELIG DATABASIS-privilegium.

SQL Server er avhengig av Windows-godkjenningssystemet ( Kerberos eller Native) som gir tilgang til en SQL Server-forekomst gjennom en Windows-gruppe eller en Windows-bruker. Når du kobler til databasen, blir brukeren identifisert av sin Windows-pålogging. Han trenger derfor ikke å oppgi passordet sitt under serverautentiseringsfasen.

Siden det er tilfeller der brukeren ikke kan identifiseres ved sin Windows-pålogging (bruk av GNU / Linux, på en webside ...), kan en direkte identifikasjonsmetode til SQL Server implementeres. Det må eksplisitt gjøres av administratoren av forekomsten. Dette antar oppretting av et SQL-kontonavn og et passord, og for sistnevnte kan man modellere policyen for konformitet av passordet på Windows.

Når du får tilgang til en ekstern ressurs, fungerer SQL Server-prosessen på tre forskjellige måter: ved etterligning når Windows-laget er riktig konfigurert, kan brukeren bare få tilgang til ressurser gjennom SQL Server. Som han hadde rett til hvis han hadde direkte tilgang; av forekomstens tjenestekonto, når brukeren er administrator og for visse oppgaver; det tillater ikke tilgang, i alle andre tilfeller. Når det gjelder SQL-påloggingskontoer, og for tilgang til en ekstern ressurs (for eksempel å sende en faks i en lagret prosedyre), legger SQL Server muligheten til å opprette påloggingsinformasjon som er registrerte Windows-kontoer for dette formålet. SQL-brukere kan derfor knyttes til disse Windows-kontoene for tilgang til eksterne ressurser.

SQL-bruker

En påloggingskonto kan tilordnes til en SQL-bruker, enten i en bestemt database, eller i flere eller alle. Påloggingsnavnet og brukernavnet kan være forskjellige (og det er bedre at det er det). En SQL-bruker i en database kan få privilegier som tillater ham å starte forskjellige kommandoer på forskjellige objekter. Privilegier kan etableres direkte på et objekt i databasen eller på en "container", for eksempel SQL-skjemaet eller hele databasen.

Eksempel på å gi forskjellige SQL-skjemanivåprivilegier til en bruker som heter USR_BANQUE:

GRANT SELECT, INSERT, UPDATE, EXECUTE ON SCHEMA::FINANCE TO USR_BANQUE; Roller

SQL Server har forhåndsopprettede roller på servernivå så vel som på basenivå. Det er til og med mulig å lage dine egne roller (nytt for servernivå siden 2012). En rolle som er en samling privilegier som kan tilskrives en tilkoblingskonto på servernivå eller til en SQL-bruker når denne rollen ble opprettet for en bestemt database.

SQL-skjema

Et skjema som er en objektbeholder i en database, lar SQL Server deg definere så mange SQL-skjemaer du vil, for å organisere de forskjellige objektene i databasen og spesielt for å administrere sikkerhet på skjemanivå på en måte proaktiv. Dermed automatiserer opprettelsen av nye objekter, hvis disse objektene er plassert i riktige diagrammer, implementeringen av sikkerhet ved arv. Det er derfor ingen kommando av noe slag å passere fra et perspektiv for rettighetsadministrasjon, slik at sikkerhet umiddelbart blir brukt.

Til slutt, og i motsetning til noen RDBMS (for eksempel Oracle), er det ikke noe privatliv eller forvirring mellom et SQL-skjema og dets eier (brukeren som opprettet det), som for eksempel i stor grad letter migrasjonen av et objekt fra ett diagram til et annet og garanterer bedre sikkerhet.

Eksempel på overføring av en tabell fra ett SQL-skjema til et annet:

ALTER SCHEMA BANQUE TRANSFER dbo.T_CLIENT; Kryptering

SQL Server tillater at tabelldata blir kryptert av forskjellige algoritmer innebygd i SQL Server. Krypteringsnøkler og sertifikater kan importeres fra en ekstern fil eller direkte opprettes i databasen, hvor SQL Server er sin egen sertifiseringsmyndighet. Imidlertid er det en tredje mulighet som består i å bruke en elektronisk boks for å generere og oppbevare nøklene kalt HSM ( Hardware Security Module ), ment for å garantere ukrenkeligheten av nøklene. Disse elektroniske enhetene blir plassert i nettverket og selvdestruert i tilfelle et forsøk på ulovlig tilgang, enten det er fysisk eller logisk.

En databasesikkerhetskopi inneholder alle nøklene og sertifikatene for å sikre kryptering og dekryptering. Men restaurering av en database på en annen server enn den opprinnelige krever dekryptering etterfulgt av omkryptering. Elementene som komponerer krypteringsarkitekturen er gjensidig avhengige av hverandre fra en hemmelig nøkkel som holdes på nivået av forekomsten. For å fortsette med kryptering eller dekryptering er det imidlertid nødvendig å åpne nøkkelen enten ved å ha et sertifikat eller ved å oppgi passordet.

SQL Server lar deg kryptere tabeldata eller kryptere rutinekoden.

Til slutt tillater SQL Server at datalagring blir kryptert og ikke lenger data gjennom TDE (Transparent Data Encryption). Filer (transaksjonslogger, tabelldata og indekser) krypteres når de skrives fysisk til disker og dekrypteres når de fysisk leses fra disker til minne. Dataene vises dermed i minnet, noe som gjør det mulig å opprettholde ytelsen mens du krypterer hele databasen.

2016-versjonen la til-til-ende-kryptering, det vil si at dekrypteringen som styres av serveren, kan gjøres på applikasjonsnivå og ikke lenger i databasen.

Databaseobjekter

Tabeller

Tabeller er objektene som faktisk inneholder dataene i databasen. De er av to typer:

  1. Systemet tabellene inneholder informasjon slik at riktig funksjon av databasen. Som standard under SQL Server 2000 kan de ikke endres. I SQL Server 2005 vises nye systemtabeller, men de er ikke tilgjengelige for brukere. For alltid å få tilgang til denne informasjonen har utviklingsteamet lagt til et stort antall systemvisninger. Disse erstatter de gamle systemtabellene og noen DBCC-kommandoer. Et stort antall nye systemvisninger er også lagt til. I SQL Server er alle systemobjekter en del av sys- skjemaet og lagres i en database kalt SystemResource.
  2. De brukertabellene inneholder brukerdata.

En tabell kan inneholde opptil 30 000 kolonner hvis størrelse av summen ikke overstiger 2 milliarder byte . Kolonner med BLOB-typer (VARCHAR (maks), NVARCHAR (maks), VARBINÆR (maks)) som lagres utenfor raden.

Tabeller kan ha en primærnøkkel . Primærnøkkelen er alltid indeksert . Andre begrensninger er også tilgjengelige på bordnivå , for eksempel: unike begrensninger (automatisk indeksert), standardverdier, sjekkbegrensninger, fremmednøkler .

Visninger

En visning er et navngitt søk i databasen. Det blir spurt på samme måte som en tabell.

Dataene som returneres av visningen rekonstrueres fra dataene i tabellene hver gang visningen kalles (bortsett fra indekserte visninger som lagrer resultatene). SQL Server erstatter navnet på visningene i spørringen som skal kjøres med definisjonene, og deretter blir den resulterende spørringen kompilert, optimalisert og utført av motoren. Den samlede planen for spørringen som er oppnådd lagres deretter for å tillate gjenbruk under neste samtale. Siden SQL Server har semantisk optimalisering i tillegg til statistisk optimalisering, blir grenene av koblinger som er unødvendige for driften av en visning, kuttet systematisk for optimalisering, når det er mulig.

Under visse forhold er det mulig å oppdatere verdiene i en visning. Eksempler på disse forholdene er:

  1. En visning på flere tabeller kan bare endre en av disse tabellene.
  2. Hvis visningen inneholder funksjoner, bruker "DISTINCT" eller "GROUP BY", vil ikke modifikasjonen fungere.
  3. Det må ikke være noen transformasjon av kolonnedata (drift, uttrykk, funksjonsanrop, etc.)
  4. Visningen har en INSTEAD OF type trigger (i sistnevnte tilfelle er modifikasjonslogikken den som vises i utløserkoden).

SQL Server implementerer spesielle typer visninger som er partisjonerte visninger og indekserte visninger (tilsvarende Oracle synkroniserte materialiserte visninger).

Indeks

Indeksering i SQL tilbys på fire måter: relasjonsindeksering, vertikal indeksering, tekstindeksering og indeksering spesifikk for bestemte typer objekter.

Relasjonell indeksering

Det er relatert til det fulle innholdet i kolonnene. Den interne mekanismen til disse indeksene er basert på forestillingen om et balansert tre (B-Tree).

Det er to typer indekser  :

  1. Klyngede indekser (CLUSTERED INDEX)
  2. UKLUSTRERT INDEKS

Det kan bare være en gruppert indeks per tabell siden denne typen indekser faktisk er en "slags" av tabellen. Radene i tabellen er derfor logisk sortert i rekkefølgen av den grupperte indeksen, noe som forklarer hvorfor det bare kan være en. Med andre ord, den klyngede indeksen er et b-tre , og bladene på indeksen er direkte radene i tabellen.

En ikke-klassifisert indeks gjenspeiler ikke den fysiske rekkefølgen på radene i tabellen.

Begge typer indekser er bygget fra en nøkkel , som består av et antall kolonner. De lar deg raskt finne et stykke data fra hele eller deler av kolonnene i denne nøkkelen.

Dermed, hvis vi vurderer en nøkkel (A, B, C), kan vi gjøre søk på feltene (A), (A, B) og (A, B, C). Feltene blir vurdert i rekkefølgen på nøkkelen; det er derfor ikke mulig å søke på for eksempel (B, C) eller (C) med denne indeksen. På den annen side vil et søk på (A, C) lett ha nytte av indekseringen av kolonne A.

En tabell kan inneholde 999 indekser. Hver indeks kan inneholde 16 kolonner hvis sum av størrelsene ikke overstiger 900 byte . Indeksene inneholder i tillegg til dataene i kolonnene i indeksen et bokmerke mot dataene i tabellen. Dette kan enten være en peker til en linje, eller en av tastene til den klyngede indeksen (på engelsk: clusterised index ).

SQL Server-optimalisereren velger hvilken indeks som skal brukes. Det kan hende at den ikke bruker indeksen du opprettet fordi kostnadene ved å søke gjennom den indeksen kan være større enn å lese hele tabellen. For å ta disse valgene bruker optimalisereren blant annet statistikken i tabellen og tilstedeværelsen eller fraværet av begrensninger. Det er imidlertid mulig å tvinge optimalisereren til å bruke en indeks med WITH-leddet (indeksnavn), men denne fremgangsmåten anbefales ikke.

Indeksen er organisert i tre-b . Dette gjør at informasjonen kan klassifiseres raskere enn om den måtte settes inn i en sekvensiell tabell. Fordi denne ordningen er veldig lagringskrevende, lar 2005-versjonen av SQL Server deg skille søkedata og behandle data som er integrert i indeksen.

SQL Server lar deg lage beregnede kolonner, som, hvis de er vedvarende (PERSISTED), kan indekseres.

Det er ingen indeksstruktur annet enn b-tre . For eksempel er det ingen bitmapindeks , noe som vil lette søk på felt med lite variert innhold, men det er tilstrekkelig å lage en referansetabell for å simulere en bitmapindeks. På samme måte er det ingen hash-indeks. Men det er bare å lage en beregnet hash-kolonne (CHECKSUM-funksjon) og indeksere den for å oppnå en lignende effekt. Til slutt er det ikke mulig å lage en indeks på uttrykk, men bare lage en beregnet kolonne med et slikt uttrykk og indeksere den for å oppnå samme effekt.

Vertikal indeksering

SQL Server lar deg lage såkalte "vertikale" indekser (columnstore index) på et sett med kolonner som gir tilgang til alle kolonnene som er indeksert i samme plan. Faktisk, i en relasjonsindeks med flere kolonner, tillater rekkefølgen på hver kolonne i indeksnøkkelen bare visse kombinasjoner av søk. Dette er ikke tilfelle med vertikal indeksering, som tillater alle kombinasjoner av søk. Med tasten (A, B, C) er det for eksempel mulig å søke både på (A), (B) eller (C), men også på en hvilken som helst kombinasjon av to eller tre kolonner (A, B), ( B, A), (A, C), (C, A), (B, C), (C, B), (A, B, C), (A, C, B), (B, A, C), (B, C, A), (C, A, B), (C, B, A).

I 2012-versjonen er disse indeksene skrivebeskyttet og er derfor hovedsakelig beregnet på databaser av DataWarehouse-typen for forretningsinformasjon. I 2014-versjonen kan disse indeksene endres.

Tekstuell og semantisk indeksering

Tekstindeksering (faktisk en indekseringskatalog) tillater søk i klar tekst ("fulltekst", i samsvar med SQL-standarden med CONTAINS-predikatet) eller på den måten Google bruker FREETEXT-predikatet. Det er lov å søke etter forskjellige ord i det samme dokumentet (tekst i kolonnene i en tabell eller et elektronisk dokument som er lagret i en tabell) ved likeverd, begynnelse, nærhet, men også ved bøyd form (bøyning, flertall, feminin, etc.) , synonymisering, utvidelse (spesielt for akronymer) ... samt med relative vekter (tabellfunksjon CONTAINSTABLE og FREETEXTTABLE).

Tekstindeksering kan forholde seg til tegnstrenger eller XML-kolonner, men også til elektroniske filer, enten de er lagret direkte i en tabell (i en BLOB) eller som en fil gjennom FILESTREAM eller i en FILETABLE. SQL Server gjenkjenner mer enn 50 filformater naturlig og lar deg legge til mange andre typer elektroniske filer ved hjelp av "ifilter".

SQL Server støtter de fleste språk og tillater flerspråklige kombinerte søk. For dette kan lister med "svarte ord" opprettes for hvert av de indekserte språkene. I tillegg indekserer SQL Server alle ord uten unntak, inkludert svarte ord, der noen RDBMS er begrenset til ord med en minimumslengde (f.eks. MySQL) eller ekskluderer svarte ord (for eksempel PostgreSQL). Til slutt, hvis saken ikke er viktig for tekstindeksering, kan brukeren velge om han vil ha en tekstindeksering med tanke på de diakritiske tegnene, for eksempel aksenter eller ligaturer. Tekstindeksering gjør det også mulig å søke etter metadata i elektroniske filer, for eksempel forfatteren av en Word-fil.

Med 2012-versjonen har SQL Server lagt til semantisk indeksering som, som navnet antyder, lar deg gjøre semantiske søk. Denne funksjonaliteten krever tillegg av en semantisk behandlingsdatabase beregnet på å etablere statistikk over de indekserte tekstene. semantisk forskning fokuserer på betydningen av dokumenter. Dette muliggjør automatisk taggutvinning, relatert innholdsoppdagelse og hierarkisk navigering gjennom dokumenter med innhold som ligner på referansetekst. Et praktisk eksempel er å spørre Document Similarity Index for å identifisere i en serie CVer, hvilke som passer best med en stillingsbeskrivelse.

Indeksere objekter

SQL Server tillater indeksering av visse objektdatatyper, for eksempel XML (fire typer indekser) eller romlig ( typegetri og geografi ). Siden det er mulig å legge til dine egne objekter, forutsatt at de beskrives i .NET-form, er det også mulig å indeksere dem, forutsatt at du ordner at de blir "  bytebestilt  " i organisasjonen av lagringen.

Det er mulig å definere lagrede prosedyrer kodet i Transact-SQL så vel som i .NET (SQL CLR). En lagret prosedyre er en rekke instruksjoner som kan modifisere databasedata og kapsle transaksjoner og som returnerer en eller flere verdier.

Prosedyrene som er lagret i SQL Server kan ta parametere og / eller returnere heltall, tegnstrenger, datoer, markører, tabeller, virtuelle tabeller og hvilken som helst annen type som er definert i SQL Server som standard eller av brukere.

De viktigste fordelene ved å bruke lagrede prosedyrer er:

  • den komplekse behandlingstransaksjonen (flere transaksjoner kan kobles eller overlappes)
  • økt sikkerhet (koden til en prosedyre kan avpersonifiseres)
  • bedre gjenbruk av kompilerte planer
  • evnen til å håndtere avhengigheter mellom SQL-kode og motorobjekter.

Utløsere

Utløseren er lagret kode som kjøres etter (ETTER) eller i stedet for (INSTEAD OF) en bestemt handling (sett inn, modifiser, slett) på et bord eller en visning. Det er mulig å kode så mange ETTER utløsere du vil på en enkelt handling (INSERT, UPDATE eller DELETE) av samme tabell eller visning. I tilfelle flere utløsere på samme handling av samme tabell, er rekkefølgen på utløserne vilkårlig, bortsett fra de første 3 som kan pålegges. I stedet for utløsere må være unike per hendelse / tabell.

To virtuelle tabeller opprettes for å håndtere innsatte, modifiserte eller slettede data: innsatt (for innsetting og modifisering) og slettet (for sletting og modifisering). Det er ikke mulig å endre innholdet i disse virtuelle tabellene. I motsetning tillater SQL Server deg å modifisere måltabellen til utløseren, for eksempel å rulle tilbake den implisitte transaksjonen som hevet utløseren ved å rulle tilbake transaksjonen (ROLLBACK).

Den spesielle INSTEAD OF trigger kan brukes når man ønsker å fange opp hendelsen, ikke for å la den finne sted, men for å kode en annen handling. Denne typen utløsere kan for eksempel brukes i sammenheng med en relasjonell / objektkartlegging hvor vi manipulerer visninger sammensatt av flere sammenføyninger der vi vil at brukeren skal kunne gjøre oppdateringer (INSERT, UPDATE, DELETE) direkte på disse visningene. I dette tilfellet deles INSERT-, UPDATE- eller DELETE-dataene for hvert av bordene som spilles, og en rekke ordrer som er spesifikke for hver tabell som skal vises, blir lansert gjennom en transaksjon.

Siden SQL Server 2005 har muligheten til å opprette DDL-utløsere blitt lagt til. Disse DDL-utløserne virker etter forekomst av hendelser av typen CREATE, ALTER eller DROP, og disse hendelsene kan fanges på servernivå (for eksempel en CREATE DATABASE) eller på databasenivå (for eksempel en DROP-TABELL). For å få informasjon om den avlyttede hendelsen, gir en XML-datapakke (hentet av EVENTDATA () -funksjonen) flere detaljer om opprinnelsen og naturen til hendelsen. Det er til og med SQL-spørringen som utløste den.

En bestemt type trigger brukes til å fange opp forbindelser til serveren (FOR LOGON trigger).

Funksjoner (UDF: brukerdefinert funksjon)

Siden SQL Server 2000 er det mulig å opprette funksjoner i Transact SQL og siden 2005 i .net (SQL CLR).

Disse funksjonene er av tre typer:

  • Scalar: Flere instruksjoner returnerer deretter en verdi av enkel type
  • Tabell med flere instruksjoner: flere instruksjoner returnerer deretter en tabell
  • Online tabell (parameterisert visning): en SELECT-setning returnerer en tabell

Imidlertid er det begrensninger på funksjonaliteten som kan brukes i kroppen til en funksjon. Det er ikke mulig å bruke ikke-deterministiske funksjoner, og funksjonen må ikke endre data eller systemparametere permanent eller permanent. Dette forbyr for eksempel bruk av et INSERT på et bord eller bruk av GETDATE () -funksjonen.

SQL Server 2005 lagt til:

  • muligheten for å lage aggregeringsfunksjoner (statistisk beregning) via CLR, det vil si koding ved hjelp av et språk på .net-plattformen;
  • spesifikke funksjoner knyttet til partisjonering av data (PARTITION FUNCTION).

I motsetning til en lagret prosedyre, kan en funksjon ikke inneholde:

  • ordre som bestemmer grensene for en transaksjon (BEGYN TRANSAKSJON, FORPLIGT, TILBAKE)
  • dataoppdateringsrekkefølge (INSERT, UPDATE, DELETE, SELECT), med unntak av flerinstruksjonsbordfunksjoner og bare for returtabellen.
  • ikke-deterministisk kode (barriere delvis løftet med SQL Server 2005, funksjoner som GETDATE er tillatt, men RAND er fortsatt forbudt)
  • dynamisk SQL
  • markøren
  • en lagret prosedyreanrop

Dette er fornuftig, fordi formålet med en funksjon er fremfor alt å brukes i et spørsmål.

Integrerte tabellfunksjoner, som fungerer som parametrerte visninger, kan oppdatere underliggende tabeller.

Objektaspekter

Siden versjon 2005 inneholder SQL Server objektaspekter, inkludert:

  • muligheten for å realisere komplekse typer strukturert via et eksternt språk som .net og å bruke dem både som en tabellkolonne og som typen av en variabel i en rutine (prosedyre, trigger eller funksjon).
  • XML-type søkbar via XQuery / XPath og kan indekseres. SQL-server som integrerer en XML-parser og prosedyrer for håndtering av XML-strømmer.
  • muligheten for å generere en XML-feed fra resultatet av et SELECT-spørsmål i stedet for et "datasett".
  • hierarchyId-typen (dukket opp i versjon 2008) som letter struktureringen av hierarkiske data (trær).
  • et ekte GIS (Geographic Information System - dukket opp i versjon 2008) med ankomsten av GEOMETRY og GEOGRAPHY-typene til OGC-standarden med grensesnitt i form av WKT (velkjent tekst) eller WKB (velkjent binær), og utstyrt med mange metoder for manipulasjon.
  • implementeringen av webtjenester som kan opprettes direkte i RDBMS.
  • lagring av filer under eksklusivt eller delvis ansvar for RDBMS (FILESTREAM) og deres transaksjonsmanipulering som muliggjør en sammenhengende sikkerhetskopi av relasjons- og ikke-relasjonsdata (veldig nyttig for eksempelvis en EDM) - @ Fra 2008.
  • den gjennomsiktige representasjonen i form av tabeller (FILETABLE) av Windows OS-fillagringstrær (kataloger og filer) og manipulering av dem med SQL-spørringer - fra 2012.

Verktøy

SQL Server Management Studio (SSMS)

Dette verktøyet er inkludert i de betalte versjonene av SQL Server. Den lar deg koble til og administrere de forskjellige SQL Server-motorene (SSRS, SSIS, SSAS og relasjonsmotoren). Det gjør det mulig for relasjonsmotoren å utvikle TSQL-skript, med muligheten for å gruppere dem alle i en løsning (som i Visual Studio). Disse kan også lagres ved hjelp av Visual SourceSafe eller Team Foundation Server. For Express (gratis) versjonen er det forenklede verktøyet for SQL Server Management Studio Express Edition (SSMSE) tilgjengelig gratis.

Før 2005 ble dette verktøyet delt inn i to moduler kalt "Enterprise Manager" og "Query Analyzer".

SQL Server Business Intelligence Development Studio / SQL Server Data Tools

I likhet med SSMS kommer dette verktøyet med betalte versjoner av SQL Server. Det er et overlegg av det generelle utviklingsverktøyet for Microsoft Visual Studio som er egnet for å lage BI-prosjekter (Analysis Services, Integration Services eller Reporting Services). Alle disse prosjektene finnes i gruppen "Business Intelligence Projects".

Profiler (profilgenerator)

Dette verktøyet lar deg registrere aktiviteten til en database. Det lar administratorer sjekke de tidkrevende elementene og spørsmålene i databasen. Eventuelt er det mulig å spille fangsten på nytt på en testserver. Det har en tendens til gradvis å bli erstattet av systemet med "utvidede hendelser" (eXtended Events).

Tjenester og motorer

Faktisk er MS SQL Server en suite som består av fem hovedtjenester:

  • Relasjonsmotoren (OLTP) kalt SQL Server;
  • Beslutningsmotoren (OLAP) kalt SSAS ( SQL Server Analysis Services ) inkludert en lagringsmotor for kuber, borealgoritmer ( data mining ) og forskjellige BI (Business Intelligence) verktøy;
  • En ETL (Extract Transform and Load) kalt SSIS (SQL Server Integration Services) beregnet på å sette opp dataflytlogikk, spesielt for å levere datalager ;
  • Et rapportgenereringsverktøy kalt SSRS (SQL Server Reporting Services) som gjør det mulig å produsere rapporter i forskjellige former og bruke ressursene til beslutningsprogrammet ("resportServer ..." -databaser) både for å lagre rapportene og også der skjule deres data for å gjøre "oppvarming";
  • Et jobbplanleggings- og varslingsstyringssystem kalt Agent SQL som også bruker tjenestene til SQL-motoren (msdb base).

Andre tjenester er knyttet til det for visse behov:

  • SQL Full-Text Filter Daemon launcher  : for å laste inn visse eksterne dokumenter (synonymordbok og dll ifilter) som kreves for "ren tekst" -søk
  • SQL Browser  : SQL-tjenesteleveringstjeneste ment å lette søk etter SQL-tjenester i nettverket
  • MS DTC (Data Transaction Coordinator): distribuert transaksjonskoordinator, brukt til to-fase commit (2PC) oppdateringer som kombinerer forskjellige transaksjonsservere, ikke nødvendigvis fra Microsoft-verdenen ( XA , X / Open , TIP, WS ...)

SQL Server inneholder også mange utviklingsverktøy:

  • for transaksjonsdatabaser, gjennom SQL Server Management Studio (SSMS)
  • for beslutningsgrunnlag, datautvinning, rapportering og ETL, gjennom et overlegg av Visual Studio kalt BIDS ( Business Intelligence Development Studio ) og deretter SQL Server Data Tools siden versjon 2012.

Mer enn hundre perifere verktøy er tilgjengelige, enten under installasjonen (SQL Profiler, Database Tuning Advisor, Data Collector, etc.), eller direkte på Microsoft-nettstedet (SQLdiag, SQLioSim, SQL Server Best Practices Analyzer ...), eller gjennom Codeplex opensource community site (RML Utilities, PAL, Open DBDiff ...).

En forekomst av SQL Server er en installasjon av noen eller alle SQL Server-tjenestene på en Windows-maskin og kan være vert for mange databaser. Det samme operativsystemet som støtter opptil 50 forskjellige forekomster (som ikke anbefales i produksjonen).

SQL Server 2014 er ikke begrenset i antall kjerner eller RAM, bare av kapasiteten til Windows. En database er begrenset til 524 peta- byte (Po), men da SQL Server kan være vert for flere databaser og 32760 baser i samme tilfelle, kan systemets samlede kapasitet teoretisk håndtere 17166240  Po- data. Med 50 forekomster på samme maskin, blir denne teoretiske grensen presset tilbake til 858 312 000  Po ...

SQL Server finnes i forskjellige utgaver: CE (Compact Edition - innebygd løsning for smarttelefoner), Express (flere versjoner - gratis), Internett (i SPLA-modus: Service Provider License Agreement - with Web hosts), Standard, BI og Enterprise - dette for produksjon. Developopper-utgaven (tilsvarer Enterprise-utgaven) er for utvikling.

SQL Server

Dette er databasemotoren. Hver forekomst av SQL Server har en tilsvarende Windows SQL Server-tjeneste. Denne tjenesten finnes i Windows-tjenester under navnene MSSQL $ Instansnavn for navngitte forekomster og MSSQLServer for standardforekomsten.

Hver opprettet forekomst har i utgangspunktet 4 til 6 systemdatabaser. SQL Server-motoren er avhengig av hovedsystemdatabasen som inneholder definisjonen av de andre databasene.

De andre systembasene er:

  • msdb  : brukes av SQL Server-agent, replikering , Data Transformation Services, Integration Services ...
  • modell  : brukes som modell for å opprette nye databaser. Enhver ny database er en kopi av den.
  • tempdb  : Midlertidig database, den brukes til å lagre midlertidige data opprettet av brukere eller generert av markører, indeksoppretting, under en stor sortering. På SQL Server 2005 inneholder den også plateversjoner generert av SNAPSHOT-isolasjonsnivåer, innholdet i de innsatte og slettede pseudotabellene som brukes i utløsere, og de som genereres av innebygde indeksoperasjoner. Denne systemdatabasen tømmes systematisk når SQL Server-tjenesten startes.
  • distribusjon  : Bare til stede i sammenheng med en replikasjon hvis serveren din spiller rollen som distributør.
  • mssqlsystemresource  : Presentere bare fra SQL Server 2005. Den er ikke direkte tilgjengelig, og den inneholder alle systemobjekter (unntatt tabeller).

SQL Server Agent

Dette er vedlikeholdsagenten for forekomsten av SQL Server. Hver forekomst av SQL Server har en tilsvarende Windows SQL Server Agent-tjeneste. Denne tjenesten finnes i Windows-tjenester under navnene SQLAgent $ InstanceName for navngitte forekomster og SQLAgent for standardforekomsten. SQL Server Agent-motoren er basert på msdb- databasen . Denne motoren brukes til å administrere sikkerhetskopier, vedlikeholdsplaner, planlagt arbeid, databaseovervåking, administrative varsler ...

Agent har også rollen som å overvåke SQL Server-tjenesten og automatisk utløse den til å starte på nytt i tilfelle en uventet nedleggelse.

Fulltekst-søk

Fulltekstindeks / søkemotor.

Distribuert transaksjonskoordinator

Også kjent som MS DTC, brukes til å administrere distribuerte transaksjoner. Det vil si transaksjoner mellom flere SQL Server-transaksjonsservere, mellom en SQL Server og andre databaseservere, mellom flere forskjellige datakilder, enten det er databasemotorer eller enkle komponenter.

Varslingstjenester

Tjeneste som dukket opp i SQL Server 2000 gjør det mulig å spørre databasen regelmessig og, avhengig av disse forespørslene, å varsle grupper som abonnerer på disse hendelsene. Denne tjenesten leveres ikke lenger som standard siden SQL Server 2008. SQL Server, kodenavnet Denali, gir likevel lignende funksjonalitet i SQL Server Reporting Services og Sharepoint 2010, kjent som Alerting.

Beslutningstaking

SQL Server business intelligence-plattformen består av en ETL , som dukket opp med SQL 7, en flerdimensjonal motor, som også dukket opp med SQL 7, og en rapporteringsmotor, lagt til i 2004 under SQL 2000. Med SQL Server versjon 2005, et utviklingsstudio for Business Intelligence ble integrert i Visual Studio 2005: BI Development Studio.

Kartlegging

SQL Server 2008 støtter en ny type primitive data: den geografiske typen der projeksjon forekommer (breddegrader og lengdegrader) og den geometriske typen uten projeksjon for å manipulere data relatert til punkter, linjer og polygoner. Den første programvaren som støtter SQL Server er programvaren Manifold System  (en) og MapInfo, GeoMedia.

Integration Services (SSIS: SQL Server Integration Services)

En tjeneste som dukket opp i SQL Server 2005, er erstatningen for Data Transformation Services (DTS). Den ETL har blitt fullstendig ombygd, og konkurrerer med andre profesjonelle ETL verktøy på markedet.

Målet er integrering av selskapet gjennom dataene. SQL Server Integration Services (SSIS) er en omfattende dataintegrasjonsplattform. SSIS, er ikke en enkel ETL. Det er en komplett dataintegrasjonsplattform som tilbyr en rekke grafiske utviklings- og administrasjonsverktøy, tjenester, programmerbare objekter og APIer (Application Programming Interfaces). SSIS inneholder en arbeidsflytmotor som støtter kompleks logikk og kan brukes til et bredt utvalg av databasevedlikeholdsoperasjoner og sofistikerte dataoverføringsoperasjoner. SSIS-arkitekturen består i utgangspunktet av to deler: datatransformasjons kjøretidsmotoren, som styrer kontrollflyten til en pakke, og datastrømningsmotoren eller datatransformasjonsrørledningsmotoren, som styrer datastrømmen fra datakilder gjennom transformasjoner og til målmål.

Analysetjenester

SQL Server Analysis Services (SSAS) er en tjeneste som dukket opp i SQL Server 7, kjent på den tiden som OLAP Services. Den lar deg generere OLAP-kuber , aggregerte og flerdimensjonale data. Det gjør det også mulig å implementere Data Mining- algoritmer .

Rapporteringstjenester

Denne tjenesten, som dukket opp i SQL Server 2000, er en rapportgenereringsmotor. To nettjenester komponerer den, den ene tillater administrasjon, den andre generasjonen, abonnementet, gjengivelsen av rapportene. Gjengivelsene gjøres i Excel, PDF, HTML og Word (fra versjon 2008).

Utgaver

Datacenter Edition

Vises med SQL Server 2008 R2, og støtter opptil 256 logiske prosessorer, i tillegg til ubegrenset virtualisering og en ubegrenset mengde minne.

Enterprise Edition

Den støtter et ubegrenset antall prosessorer og RAM-størrelse (begrenset av operativsystemet). Det er en 32-biters versjon (x86) og 2 64-biters versjoner (ia64 og x64, x64 bare for SQL Server 2005) og har ingen begrensning på størrelsen på databasene. Den kan bare installeres på en Windows- serverversjon. Inkluderer alle motorfunksjoner, inkludert funksjoner med høy tilgjengelighet. Funksjonalitetene for forretningsinformasjon er inkludert fra generering av rapporter med Reporting Services til bruk av OLAP-kuber med Analysis Services til overføring av data med Integration Services (SQL Server 2005) eller Data Transformation Services (SQL Server 7) og 2000) . Den kan også operere i en klynge med opptil 8 noder.

Utviklerutgave

Dette er en utviklerutgave som har samme funksjonalitet som Enterprise-utgaven. Lisensen inneholder imidlertid begrensninger på bruken. Lisensen forbyr drift i produksjon. Den er utelukkende ment for testbruk. Imidlertid er det ingen begrensninger på tilgjengelige produkter.

Standardutgave

Den støtter opptil 4 prosessorer og en ubegrenset RAM-størrelse (begrenset av operativsystemet). Det er en 32-biters versjon (x86) og 2 64-biters versjoner (ia64 og x64, begge bare for SQL Server 2005) og har ingen begrensning på størrelsen på databasene. Imidlertid tillater SQL Server 2005 installasjon på stasjonære Windows . Inkluderer all motorfunksjonalitet unntatt noen funksjoner med høy tilgjengelighet. Funksjonalitetene for forretningsinformasjon er alt inkludert fra generering av rapporter med Reporting Services (for SQL Server 2000 må denne komponenten lastes separat) til bruk av OLAP-kuber med Analysis Services, inkludert overføring av data med Integration Services (SQL Server 2005) eller Data Transformation Services (SQL Server 7 & 2000). Den kan også operere i en klynge med opptil 2 noder siden 2005-versjonen.

Arbeidsgruppeutgave

Ny utgave dukket opp med SQL Server 2005. Den støtter opptil 2 prosessorer og 3  GB RAM. For øyeblikket er den bare tilgjengelig i en 32-biters versjon og har ingen begrensning på størrelsen på databasene. Inkluderer det meste av motorfunksjonaliteten, inkludert muligheten til å delta i en replikasjon som redaktør. Den inkluderte business intelligence-funksjonaliteten er begrenset til rapportering med Reporting Services. Denne utgaven forsvinner med 2012-versjonen av SQL Server.

Web-utgave

Ny utgave dukket opp i SQL Server 2008. I nærheten av Standard-utgaven når det gjelder funksjonalitet, støtter den imidlertid ikke speiling eller SQL Server-beslutningstakingskomponenter. Lisensen tillater bare bruk som en databaseserver for et nettsted eller en tjeneste. Den er tilgjengelig som et månedlig abonnement, spesielt for verter i tillegg til å være tilgjengelig mer konvensjonelt for kjøp.

Personlig utgave

Eksisterende utgave med SQL Server 7 og SQL Server 2000. Den støtter opp til to prosessorer og 2  GB av RAM . Bare tilgjengelig i 32-biters versjon og har ingen begrensning på størrelsen på databasene. Inkluderer det meste av motorfunksjonaliteten, inkludert muligheten til å delta i replikering som abonnent. Den har ikke funksjoner for forretningsinformasjon. Når det gjelder lisensiering, er det tilstrekkelig å ha en SQL Server Client Access License (CAL) for å bruke denne utgaven.

Windows Intern Database / SQL Server innebygd

I likhet med SQL Server-utgaven Express, med begrensninger på minne, antall prosessorer og databasestørrelse fjernet, kan den imidlertid bare brukes lokalt og kan bare være vert for Microsoft-applikasjonsdatabaser. Produkter som Sharepoint eller visse Windows Active Directory-funksjoner bruker det.

MSDE / Express Edition

Microsoft har utgitt en gratis utgave som bare består av relasjonsdatabasemotoren, begrenset til 4  GB diskplass (10  GB i 2008 R2-versjonen). Imidlertid kan den brukes til å lage opptil 32760 forskjellige databaser, dvs. mer enn 320  TB med data fra versjon 2008 R2.

Kompakt utgave

Tidligere kalt: Pocket PC / Mobile / Everywhere Edition. Dette er en lett utgave som er egnet for bruk på PDAer eller smarttelefoner utstyrt med Windows Mobile . Compact-versjonen (versjon 3.5), som etterfølger Mobile-utgavene, er åpen for klassiske Windows- baserte arbeidsstasjoner . Denne utgaven kan delta i replikering som abonnent.

Lisenser

SQL Server støtter 5 lisensieringssystemer:

  • Per brukerlisens  : SQL Server kan bruke alle prosessorer på serveren (opp til versjon 2008 R2, maksimum 16 (Standardutgave) eller 20 (Enterprise-utgave) Kjerner i versjon 2012), men er begrenset til antall brukere som er spesifisert. Hver fysisk person som bruker et program som bruker SQL Server, regnes som en databasebruker.
  • Per enhetslisens (siden SQL Server 2005): SQL Server kan bruke alle prosessorer på serveren (opp til versjon 2008 R2, maksimum 16 (Standardutgave) eller 20 (Enterprise-utgave) Kjerner i versjon 2012), men er begrenset til antall enheter spesifisert. Hver fysiske enhet som direkte eller indirekte får tilgang til SQL Server, regnes som en databasebruker
  • Lisens per prosessor  : SQL Server bruker antall prosessorer som er spesifisert i lisensen og kan godta et hvilket som helst antall brukere. Denne lisensmodusen er gyldig til 2008 R2-utgaven og forsvinner etterpå.
  • Per kjernelisens  : Du må kjøpe så mange "Core" -lisenser som det er kjerner på serveren eller i den virtuelle maskinen. Antall brukere er ubegrenset. Denne lisensmodusen er bare gyldig fra utgaven 2012. Prisen telles av kjernepar og starter kl. 4.
  • SPLA-lisens  : for nettutgaven er dette en leielisens. Den lave prisen gjør det mulig å konkurrere med “gratis” RDBMS som MySQL eller PostGreSQL.

De typer lisenser som kan vurderes for bruk av SQL Server bak et web-frontend er enten lisensen per prosessor eller kjerne eller SPLA-modus begrenset til Web-utgaven.

Tilleggsverktøy som integrerer en SQL-server

Noen SQL Server-relaterte verktøy er verdt å nevne ...

BizTalk

Microsofts løsning for EAI (Enterprise Application Integration) og B2B (business-to-business) dataintegrering.

Delingspunkt

Global business management management-løsning (KB - Knowledge base) som tillater innholdsadministrasjon (via nettside og forum) og delte elektroniske dokumenter, henting av informasjon, samt muligheten for å lage skjemaer og presentasjon av beslutningsstatistikk som dashboards, nøkkelindikatorer ( KPI - Key Performance Indicator) ...

Dynamikk

Dette er Microsofts ERP (Enterprise Resource Planning).

TFS (Team Foundation Server)

Er en programvare smiing som tillater styring av kildekode, bygg, ressursovervåking, oppgaveplanlegging ...

SCOM (System Center Operations Manager)

System for sentralisert styring, tilsyn og vedlikehold av IT-systemet (servere, PC-er, elektroniske eksterne enheter) og av nettverksinfrastrukturen.

WSUS (Windows Server Update Services)

Distribusjonstjeneste for Microsoft OS og applikasjoner for oppdatering av de forskjellige Windows-maskinene i en datapark (bruker den gratis Express-versjonen)

Tilleggsverktøy som kan bruke en SQL-server

StreamInsight

StreamInsight er en plattform designet for å utvikle og distribuere i stor skala Complex Event Processing (CEP) applikasjoner. Den er basert på to viktige komponenter: StreamInsight Server for styring av datastrømmer og StreamInsight Framework for opprettelse av grensesnitt.

EDF bruker StreamInsight for hendelsesadministrasjon for alt IT-utstyr.

SQL Server og Big Data

Svært forpliktet til denne bevegelsen, spesielt gjennom Hadoop, tilbyr Microsoft forskjellige løsninger for å administrere big data.

HDInsight (Hadoop)

HDInsight er en Hadoop-løsning som tilbys i Azure-skyen eller lokalt (for utviklingsformål).

Map / Reduce, Hive, Sqoop og Pig språkverktøy letter overføring og manipulering av data fra SQL Server til Hadoop. En SDK basert på .NET-rammeverket lar deg skrive grupper ved hjelp av Visual Studio. En lokal installasjon av Hadoop beregnet på utviklere er tilgjengelig via HDInsight Server.

Polybase

Polybase er et verktøy beregnet på å angripe forskjellige relasjonelle kilder (SQL Server), avgjørelses (SQL Server Parallel Data Warehouse - PDW) eller big data data, gjennom forskjellige prosesser som Map Reduce eller MPP (Massive Parallel Processive)

Referanser

  1. Utgaver og støttede funksjoner i SQL Server 2019 (15.x)  " ,4. november 2019(åpnet 23. desember 2020 )
  2. (in) "  Docker: Installer containere for SQL Server på Linux - SQL Server  "microsoft.com (åpnet 4. september 2020 ) .
  3. FreeTDS
  4. Som standard på SQL Server 2014 er det ikke mulig å starte en systemkommando fra SQL Server
  5. https://technet.microsoft.com/fr-fr/library/ms175609%28v=sql.90%29.aspx
  6. “  Cloud Computing Services / Microsoft Azure,  ”microsoft.com (åpnet 4. september 2020 ) .
  7. “  Cloud Computing Services / Microsoft Azure,  ”microsoft.com (åpnet 4. september 2020 ) .
  8. SQL Server 2012, hva er nytt?

Se også

Relaterte artikler