Microsoft SQL Server - Microsoft SQL Server

Microsoft SQL Server
Utvikler (er) Microsoft
Første utgivelse 24. april 1989 ; For 32 år siden , som SQL Server 1.0 ( 1989-04-24 )
Stabil utgivelse
SQL Server 2019  Rediger dette på Wikidata / 4. november 2019 ; 22 måneder siden ( 4. november 2019 )
Skrevet inn C , C ++
Operativsystem Linux , Microsoft Windows Server , Microsoft Windows
Tilgjengelig i Engelsk, kinesisk, fransk, tysk, italiensk, japansk, koreansk, portugisisk (Brasil), russisk, spansk og indonesisk
Type Relasjonelt databasesystem
Tillatelse Proprietær programvare
Nettsted www .microsoft .com /sql-server

Microsoft SQL Server er et relasjonsdatabasehåndteringssystem utviklet av Microsoft . Som en databaseserver er det et programvareprodukt med hovedfunksjonen til å lagre og hente data etter behov fra andre programmer - som kan kjøres enten på samme datamaskin eller på en annen datamaskin i et nettverk (inkludert Internett). Microsoft markedsfører minst et dusin forskjellige utgaver av Microsoft SQL Server, rettet mot forskjellige målgrupper og for arbeidsmengder som spenner fra små applikasjoner med én maskin til store Internett-vendte applikasjoner med mange samtidige brukere .

Historie

Historien til Microsoft SQL Server begynner med det første Microsoft SQL Server-produktet-SQL Server 1.0, en 16-biters server for OS/2- operativsystemet i 1989-og strekker seg til den nåværende dagen.

Milepæler

  • MS SQL Server for OS/2 begynte som et prosjekt for å overføre Sybase SQL Server til OS/2 i 1989 av Sybase , Ashton-Tate og Microsoft .
  • SQL Server 4.2 for NT ble utgitt i 1993, og markerer oppføringen på Windows NT .
  • SQL Server 6.0 ble utgitt i 1995, og markerer slutten på samarbeidet med Sybase ; Sybase ville fortsette å utvikle sin egen variant av SQL Server , Sybase Adaptive Server Enterprise , uavhengig av Microsoft.
  • SQL Server 7.0 ble utgitt i 1998, og markerer konverteringen av kildekoden fra C til C ++.
  • SQL Server 2005, utgitt i 2005, fullfører den fullstendige revisjonen av den gamle Sybase -koden til Microsoft -kode.
  • SQL Server 2012, utgitt i 2012, legger til kolonnelagret lagring i minnet aka xVelocity.
  • SQL Server 2017, utgitt i 2017, legger til Linux -støtte for disse Linux -plattformene: Red Hat Enterprise Linux , SUSE Linux Enterprise Server , Ubuntu & Docker Engine .

For tiden

Fra mai 2020 støttes følgende versjoner av Microsoft:

  • SQL Server 2012
  • SQL Server 2014
  • SQL Server 2016
  • SQL Server 2017
  • SQL Server 2019

Fra og med SQL Server 2016 støttes produktet bare på x64 -prosessorer.

Den nåværende versjonen er Microsoft SQL Server 2019, utgitt 4. november 2019. RTM -versjonen er 15.0.2000.5.

Utgaver

Microsoft gjør SQL Server tilgjengelig i flere utgaver, med forskjellige funksjonssett og målrettet mot forskjellige brukere. Disse utgavene er:

Vanlige utgaver

Bedriften
SQL Server Enterprise Edition inkluderer både kjernedatabase-motoren og tilleggstjenester, med en rekke verktøy for å lage og administrere en SQL Server-klynge. Den kan administrere databaser så store som 524 petabyte og adressere 12 terabyte minne og støtter 640 logiske prosessorer (CPU -kjerner).
Standard
SQL Server Standard-utgaven inkluderer kjernedatabasemotoren, sammen med frittstående tjenester. Den skiller seg fra Enterprise-utgaven ved at den støtter færre aktive forekomster (antall noder i en klynge) og inneholder ikke noen funksjoner med høy tilgjengelighet, for eksempel minne for varmt tillegg (slik at minne kan legges til mens serveren fortsatt kjører), og parallelle indekser.
Internett
SQL Server Web Edition er et lavt TCO- alternativ for webhotell.
Business Intelligence
Introdusert i SQL Server 2012 og fokuserer på Self Service og Corporate Business Intelligence. Den inkluderer Standard Edition-funksjonene og Business Intelligence-verktøy: PowerPivot, Power View, BI Semantic Model, Master Data Services, Data Quality Services og xVelocity in-memory analytics.
Arbeidsgruppe
SQL Server Workgroup Edition inkluderer kjernedatabasefunksjonaliteten, men inkluderer ikke tilleggstjenestene. Vær oppmerksom på at denne utgaven har blitt pensjonert i SQL Server 2012.
Uttrykke
SQL Server Express Edition er en nedskalert, gratis utgave av SQL Server, som inkluderer kjernedatabasemotoren. Selv om det ikke er noen begrensninger på antall databaser eller brukere som støttes, er det begrenset til å bruke én prosessor, 1 GB minne og 10 GB databasefiler (4 GB databasefiler før SQL Server Express 2008 R2). Den er ment som en erstatning for MSDE . To ekstra utgaver gir et ekstra sett med funksjoner som ikke er i den originale Express -utgaven. Den første er SQL Server Express med Tools , som inkluderer SQL Server Management Studio Basic. SQL Server Express med Advanced Services legger til søkefunksjoner i fulltekst og rapporteringstjenester.

Spesialiserte utgaver

Installasjonsplate for SQL Server 2005 Developer Edition
Azure
Microsoft Azure SQL Database er den skybaserte versjonen av Microsoft SQL Server, presentert som en plattform som et tjenestetilbudMicrosoft Azure .
Azure MPP
Azure SQL Data Warehouse er den skybaserte versjonen av Microsoft SQL Server i en MPP- arkitektur (massivt parallell behandling) for analysebelastninger, presentert som en plattform som et tjenestetilbudMicrosoft Azure .
Kompakt (SQL CE)
Den kompakte utgaven er en innebygd databasemotor. I motsetning til de andre utgavene av SQL Server, er SQL CE-motoren basert på SQL Mobile (opprinnelig designet for bruk med håndholdte enheter) og deler ikke de samme binære filene. På grunn av sin lille størrelse (1 MB DLL -fotavtrykk) har den et markant redusert funksjonssett sammenlignet med de andre utgavene. For eksempel støtter den et delsett av standard datatyper, støtter ikke lagrede prosedyrer eller Views eller batcher med flere setninger (blant andre begrensninger). Den er begrenset til 4 GB maksimal databasestørrelse og kan ikke kjøres som en Windows -tjeneste, Compact Edition må være vert for programmet som bruker den. 3.5 -versjonen inkluderer støtte for ADO.NET Synchronization Services. SQL CE støtter ikke ODBC -tilkobling, i motsetning til riktig SQL Server.
Utvikler
SQL Server Developer Edition inneholder de samme funksjonene som SQL Server Enterprise Edition, men er begrenset av lisensen til å bare brukes som et utviklings- og testsystem, og ikke som produksjonsserver. Fra begynnelsen av 2016 gjorde Microsoft denne utgaven gratis for publikum.
Innebygd (SSEE)
SQL Server 2005 Embedded Edition er en spesielt konfigurert navngitt forekomst av SQL Server Express -databasemotoren som bare er tilgjengelig for visse Windows -tjenester.
Evaluering
SQL Server Evaluation Edition, også kjent som Trial Edition , har alle funksjonene i Enterprise Edition, men er begrenset til 180 dager, hvoretter verktøyene fortsetter å kjøre, men servertjenestene stopper.
Fast Track
SQL Server Fast Track er spesielt for lagring av datavarehus i forretningsskala og behandling av forretningsinformasjon, og kjører på referanse-arkitektur-maskinvare som er optimalisert for Fast Track.
LocalDB
LocalDB ble introdusert i SQL Server Express 2012 og er en minimal, on-demand-versjon av SQL Server som er designet for applikasjonsutviklere. Den kan også brukes som en innebygd database.
Analytics Platform System (APS)
Tidligere Parallel Data Warehouse (PDW) En massivt parallell prosessering (MPP) SQL Server-enhet som er optimalisert for store datalagre som hundrevis av terabyte.
Datawarehouse Appliance Edition
Forhåndsinstallert og konfigurert som en del av et apparat i samarbeid med Dell og HP-basen på Fast Track-arkitekturen. Denne utgaven inkluderer ikke SQL Server Integration Services, Analysis Services eller Reporting Services.sqlcmd

Utgåtte utgåver

MSDE
Microsoft SQL Server Data Engine / Desktop Engine / Desktop Edition. SQL Server 7 og SQL Server 2000. Den er beregnet for bruk som en applikasjonskomponent og inneholder ikke GUI -administrasjonsverktøy. Senere har Microsoft også gjort tilgjengelig et webadministrasjonsverktøy. Inkludert med noen versjoner av Microsoft Access , Microsofts utviklingsverktøy og andre utgaver av SQL Server.
Personlig utgave
SQL Server 2000. Hadde arbeidsmengde eller tilkoblingsgrenser som MSDE, men ingen databasestørrelsesgrense. Inkluderer standard administrasjonsverktøy. Beregnet for bruk som en mobil / frakoblet proxy, lisensiert for bruk med SQL Server 2000 Standardversjon.
Datasenter
SQL Server 2008 R2 Datacenter er en komplett versjon av SQL Server og er designet for datasentre som trenger høy grad av applikasjonsstøtte og skalerbarhet. Den støtter 256 logiske prosessorer og praktisk talt ubegrenset minne og leveres med StreamInsight Premium -utgaven. Datacenter -utgaven har blitt pensjonert i SQL Server 2012; alle funksjonene er tilgjengelige i SQL Server 2012 Enterprise Edition.

Arkitektur

Protokollaget implementerer det eksterne grensesnittet til SQL Server. Alle operasjoner som kan påberopes på SQL Server, kommuniseres til den via et Microsoft-definert format, kalt Tabular Data Stream (TDS). TDS er en applikasjonslagsprotokoll som brukes til å overføre data mellom en databaseserver og en klient. Opprinnelig designet og utviklet av Sybase Inc. for deres Sybase SQL Server relasjonsdatabasemotor i 1984, og senere av Microsoft i Microsoft SQL Server, kan TDS -pakker være innkapslet i andre fysiske transportavhengige protokoller, inkludert TCP/IP , navngitte rør og delte minne . Følgelig er tilgang til SQL Server tilgjengelig over disse protokollene. I tillegg er SQL Server API også eksponert over webtjenester .

Datalagring

Datalagring er en database , som er en samling tabeller med typede kolonner. SQL Server støtter ulike datatyper, inkludert primitive typer som Integer , Float , Desimal , Char (inkludert tegnstrenger), Varchar (variabel lengde tegnstrenger), binære (for ustrukturerte blobs av data), Text (for tekstlig data) blant andre . Den avrunding av flyter til heltall bruker enten Symmetric aritmetisk avrunding eller Symmetric Round Down ( fix ) avhengig av argumenter: SELECT Round(2.5, 0)gir tre.

Microsoft SQL Server lar også brukerdefinerte sammensatte typer (UDT) defineres og brukes. Det gjør også serverstatistikk tilgjengelig som virtuelle tabeller og visninger (kalt Dynamic Management Views eller DMV). I tillegg til tabeller kan en database også inneholde andre objekter, inkludert visninger , lagrede prosedyrer , indekser og begrensninger , sammen med en transaksjonslogg. En SQL Server-database kan inneholde maksimalt 2 31 objekter og kan dekke flere filer på operativnivå med en maksimal filstørrelse på 2 60 byte (1 eksabyte). Dataene i databasen lagres i primære datafiler med en utvidelse .mdf. Sekundære datafiler, identifisert med en .ndfutvidelse, brukes til å la dataene fra en enkelt database spres over mer enn én fil, og eventuelt over mer enn ett filsystem. Loggfiler er identifisert med .ldfutvidelsen.

Lagringsplass som er tilordnet en database er delt inn i sekvensielt nummererte sider , hver på 8 KB i størrelse. En side er grunnenheten for I/O for SQL Server -operasjoner. En side er merket med en 96-byte-overskrift som lagrer metadata om siden, inkludert sidetall, sidetype, ledig plass på siden og ID-en til objektet som eier den. Sidetypen definerer dataene på siden. Disse dataene inkluderer: data lagret i databasen, en indeks, et tildelingskart, som inneholder informasjon om hvordan sider tildeles tabeller og indekser; og et endringskart som inneholder informasjon om endringene som er gjort på andre sider siden siste sikkerhetskopiering eller logging, eller inneholder store datatyper som bilde eller tekst. Selv om en side er grunnenheten for en I/O -operasjon, administreres plassen faktisk i form av et omfang som består av 8 sider. Et databaseobjekt kan enten dekke alle 8 sider i en utstrekning ("ensartet omfang") eller dele et omfang med opptil 7 flere objekter ("blandet omfang"). En rad i en databasetabell kan ikke spenne mer enn én side, så den er begrenset til 8 KB i størrelse. Men hvis dataene overstiger 8 KB og raden inneholder varchar eller varbinary data, flyttes dataene i disse kolonnene til en ny side (eller muligens en sekvens av sider, kalt en allokeringsenhet ) og erstattes med en peker til dataene.

For fysisk lagring av et bord er radene delt inn i en serie partisjoner (nummerert 1 til n). Partisjonstørrelsen er brukerdefinert; Som standard er alle radene i en enkelt partisjon. En tabell er delt inn i flere partisjoner for å spre en database over en dataklynge . Rader i hver partisjon lagres i enten B-tre eller haugstruktur . Hvis tabellen har en tilhørende, klynget indeks for å tillate rask henting av rader, lagres radene i rekkefølge i henhold til indeksverdiene, med et B-tre som gir indeksen. Dataene er i bladnoden til bladene, og andre noder som lagrer indeksverdiene for bladdataene som kan nås fra de respektive nodene. Hvis indeksen ikke er gruppert, blir radene ikke sortert i henhold til indeksnøklene. En indeksert visning har samme lagringsstruktur som en indeksert tabell. En tabell uten en gruppert indeks er lagret i en uordnet haugstruktur. Imidlertid kan tabellen ha ikke-gruppert indekser for å tillate rask henting av rader. I noen situasjoner har haugstrukturen ytelsesfordeler i forhold til den grupperte strukturen. Både hauger og B-trær kan spenne over flere tildelingsenheter.

Bufferhåndtering

SQL Server bufrer sider i RAM for å minimere disk -I/U. Enhver 8 KB-side kan bufres i minnet, og settet med alle sidene som er bufret, kalles bufferbufferen. Mengden minne som er tilgjengelig for SQL Server, bestemmer hvor mange sider som skal bufres i minnet. Bufferbufferen administreres av Buffer Manager . Enten du leser fra eller skriver til en hvilken som helst side, kopierer den til bufferbufferen. Påfølgende lesninger eller skriving blir omdirigert til minnekopien, i stedet for versjonen på platen. Siden oppdateres bare på platen av Buffer Manager hvis bufferen i minnet ikke har blitt referert på en stund. Når du skriver sider tilbake til platen, brukes asynkron I/O hvorved I/O -operasjonen utføres i en bakgrunnstråd, slik at andre operasjoner ikke trenger å vente på at I/O -operasjonen er fullført. Hver side skrives sammen med kontrollsummen når den er skrevet. Når du leser siden tilbake, blir sjekksummen beregnet igjen og matchet med den lagrede versjonen for å sikre at siden ikke har blitt skadet eller manipulert i mellomtiden.

Samtidig og låsing

SQL Server lar flere klienter bruke den samme databasen samtidig. Som sådan må den kontrollere samtidig tilgang til delte data for å sikre dataintegritet - når flere klienter oppdaterer de samme dataene, eller klienter prøver å lese data som er i ferd med å bli endret av en annen klient. SQL Server tilbyr to moduser for samtidighetskontroll: pessimistisk samtidighet og optimistisk samtidighet . Når pessimistisk samtidighetskontroll brukes, kontrollerer SQL Server samtidig tilgang ved å bruke låser. Låser kan enten deles eller eksklusive. Eksklusiv lås gir brukeren eksklusiv tilgang til dataene - ingen annen bruker kan få tilgang til dataene så lenge låsen holdes. Delte låser brukes når noen data leses - flere brukere kan lese fra data låst med en delt lås, men ikke skaffe seg en eksklusiv lås. Sistnevnte måtte vente på at alle delte låser ble frigitt.

Låser kan brukes på forskjellige nivåer av granularitet-på hele tabeller, sider eller til og med per rad på tabeller. For indekser kan det enten være på hele indeksen eller på indeksbladene. Nivået på granularitet som skal brukes, er definert på basis av databasen av databaseadministratoren. Selv om et finkornet låsesystem tillater flere brukere å bruke tabellen eller indeksen samtidig, krever det flere ressurser, så det gir ikke automatisk høyere ytelse. SQL Server inkluderer også ytterligere to lette gjensidige ekskluderingsløsninger - låser og spinnlåser - som er mindre robuste enn låser, men er mindre ressurskrevende. SQL Server bruker dem for DMV -er og andre ressurser som vanligvis ikke er opptatt. SQL Server overvåker også alle arbeidertråder som skaffer seg låser for å sikre at de ikke havner i dødelås - i tilfelle de gjør det, tar SQL Server utbedringstiltak, som i mange tilfeller skal drepe en av trådene som er viklet inn i et fastlåst og rulle tilbake transaksjonen den startet. For å implementere låsing inneholder SQL Server Lock Manager . Lock Manager opprettholder en in-memory-tabell som administrerer databaseobjektene og låser dem om mulig sammen med andre metadata om låsen. Tilgang til ethvert delt objekt formidles av låsesjefen, som enten gir tilgang til ressursen eller blokkerer den.

SQL Server gir også den optimistiske samtidighetskontrollmekanismen, som ligner på multiversjon -samtidighetskontrollen som brukes i andre databaser. Mekanismen gjør det mulig å opprette en ny versjon av en rad hver gang raden oppdateres, i motsetning til å overskrive raden, det vil si at en rad i tillegg blir identifisert av ID -en til transaksjonen som opprettet versjonen av raden. Både de gamle og de nye versjonene av raden lagres og vedlikeholdes, selv om de gamle versjonene flyttes ut av databasen til en systemdatabase som er identifisert som Tempdb. Når en rad er i ferd med å bli oppdatert, blir ikke andre forespørsler blokkert (i motsetning til låsing), men blir utført på den eldre versjonen av raden. Hvis den andre forespørselen er en oppdateringserklæring, vil den resultere i to forskjellige versjoner av radene - begge blir lagret av databasen, identifisert av deres respektive transaksjons -ID -er.

Datainnhenting og programmerbarhet

Hovedmodusen for å hente data fra en SQL Server -database er å spørre etter den. Spørsmålet uttrykkes ved hjelp av en variant av SQL kalt T-SQL , en dialekt Microsoft SQL Server deler med Sybase SQL Server på grunn av sin arv. Spørringen declaratively spesifiserer hva som skal hentes. Den behandles av spørringsprosessoren, som finner ut sekvensen av trinn som vil være nødvendige for å hente de forespurte dataene. Handlingssekvensen som er nødvendig for å utføre en spørring kalles en spørringsplan . Det kan være flere måter å behandle den samme spørringen på. For eksempel, for en spørring som inneholder en join -setning og en select -setning, ville utførelse av join på begge tabellene og deretter kjøring av select på resultatene gi det samme resultatet som å velge fra hver tabell og deretter utføre join, men resultere i forskjellig utførelse planer. I slike tilfeller velger SQL Server planen som forventes å gi resultatene på kortest mulig tid. Dette kalles spørringsoptimalisering og utføres av spørringsprosessoren selv.

SQL Server inkluderer en kostnadsbasert spørringsoptimaliserer som prøver å optimalisere kostnadene, med tanke på ressursene det vil ta for å utføre spørringen. Gitt en spørring, så ser spørringsoptimereren på databaseskjemaet , databasestatistikken og systembelastningen på den tiden. Den bestemmer deretter hvilken sekvens som skal få tilgang til tabellene som er referert i spørringen, hvilken sekvens operasjonene skal utføres og hvilken tilgangsmetode som skal brukes for å få tilgang til tabellene. For eksempel, hvis tabellen har en tilhørende indeks, om indeksen skal brukes eller ikke: hvis indeksen er i en kolonne som ikke er unik for de fleste kolonnene (lav "selektivitet"), er det kanskje ikke verdt å bruke indeksen for å få tilgang til dataene. Til slutt bestemmer den om spørringen skal kjøres samtidig eller ikke. Selv om en samtidig utførelse er mer kostbar når det gjelder total prosessortid, fordi kjøringen faktisk er delt til forskjellige prosessorer, kan det bety at den vil utføres raskere. Når en spørringsplan er generert for en spørring, bufres den midlertidig. For ytterligere påkallelser av den samme spørringen, brukes bufret plan. Ubrukte planer kastes etter en tid.

SQL Server gjør det også mulig å definere lagrede prosedyrer . Lagrede prosedyrer er parameteriserte T-SQL-forespørsler, som lagres på serveren selv (og ikke utstedes av klientprogrammet slik det er tilfellet med generelle spørringer). Lagrede prosedyrer kan godta verdier sendt av klienten som inndataparametere, og sende tilbake resultater som utgangsparametere. De kan kalle definerte funksjoner og andre lagrede prosedyrer, inkludert den samme lagrede prosedyren (opptil et bestemt antall ganger). De kan selektivt gis tilgang til . I motsetning til andre spørringer har lagrede prosedyrer et tilknyttet navn, som brukes ved kjøretid for å løse de faktiske spørringene. Fordi koden ikke trenger å sendes fra klienten hver gang (da den kan nås med navn), reduserer den nettverkstrafikken og forbedrer ytelsen noe. Utførelsesplaner for lagrede prosedyrer blir også bufret etter behov.

T-SQL

T-SQL (Transact-SQL) er Microsofts proprietære prosessuelle språkutvidelse for SQL Server. Den gir REPL (Read-Eval-Print-Loop) instruksjoner som utvider standard SQLs instruksjonssett for datamanipulering ( DML ) og Data Definition ( DDL ) instruksjoner, inkludert SQL Server-spesifikke innstillinger, sikkerhet og databasestatistikkbehandling.

Den viser nøkkelord for operasjonene som kan utføres på SQL Server, inkludert å lage og endre databaseskjemaer, skrive inn og redigere data i databasen samt overvåke og administrere selve serveren. Klientprogrammer som bruker data eller administrerer serveren, vil dra nytte av SQL Server-funksjonaliteten ved å sende T-SQL-spørringer og utsagn som deretter behandles av serveren og resultater (eller feil) returneres til klientprogrammet. For dette avslører den skrivebeskyttede tabeller som serverstatistikk kan leses fra. Administrasjonsfunksjonaliteten avsløres via systemdefinerte lagrede prosedyrer som kan påkalles fra T-SQL-spørringer for å utføre administrasjonsoperasjonen. Det er også mulig å opprette koblede servere ved hjelp av T-SQL. Tilkoblede servere lar en enkelt forespørsel behandle operasjoner som utføres på flere servere.

SQL Server Native Client (aka SNAC)

SQL Server Native Client er morsklientsiden datatilgang bibliotek for Microsoft SQL Server, versjon 2005 og utover. Det implementerer naturlig støtte for SQL Server -funksjonene, inkludert implementering av Tabular Data Stream , støtte for speilede SQL Server -databaser, full støtte for alle datatyper som støttes av SQL Server, asynkrone operasjoner, spørringsvarsler, krypteringsstøtte , samt mottak av flere resultatsett i en enkelt databaseøkt. SQL Server Native Client brukes under hetten av SQL Server-plug-ins for andre datatilgangsteknologier, inkludert ADO eller OLE DB . SQL Server Native Client kan også brukes direkte og omgå de generiske lagene for datatilgang.

28. november 2011 ble det gitt ut en forhåndsversjon av SQL Server ODBC -driveren for Linux .

SQL CLR

Microsoft SQL Server 2005 inkluderer en komponent som heter SQL CLR ("Common Language Runtime") som den integreres med .NET Framework . I motsetning til de fleste andre applikasjoner som bruker .NET Framework, er SQL Server selv vert for .NET Framework -kjøretiden , dvs. krav til minne, tråder og ressursbehandling av .NET Framework tilfredsstiller SQL selv, i stedet for det underliggende Windows -operativsystemet. SQLOS tilbyr også fastlåsningstjenester og oppløsningstjenester for .NET -kode. Med SQL CLR kan lagrede prosedyrer og utløsere skrives på et hvilket som helst administrert .NET -språk , inkludert C# og VB.NET . Administrert kode kan også brukes til å definere UDT ( brukerdefinerte typer ), som kan vedvare i databasen. Administrert kode blir kompilert til CLI -forsamlinger og etter å ha blitt verifisert for typesikkerhet , registrert i databasen. Etter det kan de påberopes som enhver annen prosedyre. Imidlertid er bare et delsett av baseklassebiblioteket tilgjengelig når du kjører kode under SQL CLR. De fleste API -er knyttet til brukergrensesnittfunksjonalitet er ikke tilgjengelige.

Når du skriver kode for SQL CLR, kan data som er lagret i SQL Server -databaser nås med ADO.NET API -er som alle andre administrerte applikasjoner som har tilgang til SQL Server -data. Imidlertid oppretter det en ny databasesession, forskjellig fra den der koden utføres. For å unngå dette, gir SQL Server noen forbedringer til ADO.NET -leverandøren som gjør at tilkoblingen kan omdirigeres til den samme økten som allerede er vert for den løpende koden. Slike tilkoblinger kalles kontekstforbindelser og settes ved å sette context connectionparameter til truetilkoblingsstrengen. SQL Server gir også flere andre forbedringer til ADO.NET API, inkludert klasser for arbeid med tabelldata eller en enkelt rad med data, samt klasser for å arbeide med interne metadata om dataene som er lagret i databasen. Den gir også tilgang til XML -funksjonene i SQL Server, inkludert XQuery -støtte. Disse forbedringene er også tilgjengelige i T-SQL-prosedyrer som følge av introduksjonen av den nye XML-datatypen (spørring, verdi, noder-funksjoner).

Tjenester

SQL Server inkluderer også et utvalg av tilleggstjenester. Selv om disse ikke er viktige for driften av databasesystemet, tilbyr de merverditjenester på toppen av kjernedatabasesystemet. Disse tjenestene kjøres enten som en del av en SQL Server-komponent eller er ute av prosess som Windows Service og presenterer sitt eget API for å kontrollere og samhandle med dem.

Maskinlæringstjenester

SQL Server Machine Learning -tjenestene opererer i SQL -serverinstansen, slik at folk kan gjøre maskinlæring og dataanalyse uten å måtte sende data over nettverket eller være begrenset av minnet til sine egne datamaskiner. Tjenestene leveres med Microsofts R- og Python -distribusjoner som inneholder ofte brukte pakker for datavitenskap, sammen med noen proprietære pakker (f.eks. Revoscalepy , RevoScaleR , microsoftml) som kan brukes til å lage maskinmodeller i stor skala.

Analytikere kan enten konfigurere klientmaskinen til å koble til en ekstern SQL-server og skyve scriptutførelsene til den, eller de kan kjøre et R- eller Python-skript som et eksternt skript inne i en T-SQL-spørring. Den opplærte maskinlæringsmodellen kan lagres i en database og brukes til poengsum.

Servicemegler

Brukes i et eksempel, programmeringsmiljø. For kryssinstansapplikasjoner kommuniserer Service Broker over TCP/IP og lar de forskjellige komponentene synkroniseres via utveksling av meldinger. Service Broker, som kjører som en del av databasemotoren, gir en pålitelig meldings- og meldingskøplattform for SQL Server -applikasjoner.

Tjenestemeglertjenester består av følgende deler:

  • meldingstyper
  • kontrakter
  • køer
  • serviceprogrammer
  • ruter

Meldingstypen definerer dataformatet som brukes for meldingen. Dette kan være et XML -objekt, ren tekst eller binære data, samt en null meldingstekst for varsler. Kontrakten definerer hvilke meldinger som brukes i en samtale mellom tjenester og hvem som kan sette meldinger i køen. Køen fungerer som lagringsleverandør for meldingene. De er internt implementert som tabeller av SQL Server, men støtter ikke innsetting, oppdatering eller sletting av funksjonalitet. Serviceprogrammet mottar og behandler meldinger fra tjenestemeglere. Vanligvis er serviceprogrammet implementert som lagret prosedyre eller CLR -applikasjon. Ruter er nettverksadresser der tjenestemegleren befinner seg på nettverket.

Også service megleren bærere sikkerhetsfunksjoner som nettverksautentisering (ved hjelp av NTLM , Kerberos , eller autoriseringssertifikater ), integritet kontroll, og meldingskryptering .

Replikeringstjenester

SQL Server Replication Services brukes av SQL Server til å replikere og synkronisere databaseobjekter, enten i sin helhet eller et delsett av objektene som er tilstede, på tvers av replikeringsagenter, som kan være andre databaseservere på tvers av nettverket, eller databasecacher på klientsiden. Replikeringstjenester følger en utgiver/abonnentmodell, dvs. at endringene sendes ut av en databaseserver ("utgiver") og mottas av andre ("abonnenter"). SQL Server støtter tre forskjellige typer replikering:

Transaksjon replikering
Hver transaksjon som utføres til forlagsdatabasen (hoveddatabasen) synkroniseres til abonnenter som oppdaterer databasene sine med transaksjonen. Transaksjonell replikasjon synkroniserer databaser i nær sanntid.
Slå sammen replikering
Endringer som utføres både i utgiver- og abonnentdatabaser spores, og periodisk synkroniseres endringene toveis mellom utgiveren og abonnentene. Hvis de samme dataene er blitt endret annerledes i både utgiveren og abonnentdatabasene, vil synkronisering resultere i en konflikt som må løses, enten manuelt eller ved å bruke forhåndsdefinerte retningslinjer. rowguid må konfigureres i en kolonne hvis flettingreplikasjon er konfigurert.
Replikering av øyeblikksbilder
Snapshot-replikasjon publiserer en kopi av hele databasen (det daværende øyeblikksbildet av dataene) og replikeres ut til abonnentene. Ytterligere endringer i øyeblikksbildet spores ikke.

Analysetjenester

SQL Server Analysis Services (SSAS) legger OLAP og Data mining evner for SQL Server databaser. OLAP -motoren støtter MOLAP , ROLAP og HOLAP lagringsmoduser for data. Analysis Services støtter XML for Analysis -standarden som den underliggende kommunikasjonsprotokollen. Kubedataene kan nås ved hjelp av MDX- og LINQ -forespørsler. Data mining spesifikk funksjonalitet avsløres via DMX -spørrespråket. Analysetjenester inkluderer forskjellige algoritmer - Beslutningstrær , klyngealgoritme, Naive Bayes -algoritme, tidsserieanalyse, sekvensgrupperingsalgoritme, lineær og logistisk regresjonsanalyse og nevrale nettverk - for bruk i datautvinning.

Rapporteringstjenester

SQL Server Reporting Services (SSRS) er et rapportgenereringsmiljø for data samlet fra SQL Server -databaser. Det administreres via et webgrensesnitt . Rapporteringstjenester har et webtjenestegrensesnitt for å støtte utviklingen av tilpassede rapporteringsapplikasjoner. Rapporter opprettes som RDL -filer.

Rapporter kan utformes ved å bruke nyere versjoner av Microsoft Visual Studio (Visual Studio.NET 2003, 2005 og 2008) med Business Intelligence Development Studio , installert eller med den medfølgende Report Builder . Når de er opprettet, kan RDL -filer gjengis i en rekke formater, inkludert Excel, PDF , CSV , XML , BMP , EMF , GIF , JPEG , PNG og TIFF og HTML Web Archive.

Varslingstjenester

Notification Services ble opprinnelig introdusert som et tilleggsprogram for SQL Server 2000, og ble samlet som en del av Microsoft SQL Server-plattformen for første og eneste gang med SQL Server 2005. SQL Server Notification Services er en mekanisme for generering av datadrevne varsler, som sendes til Notification Services -abonnenter. En abonnent registrerer seg for en bestemt hendelse eller transaksjon (som er registrert på databaseserveren som en utløser); når hendelsen skjer, kan varslingstjenester bruke en av tre metoder for å sende en melding til abonnenten for å informere om hendelsen. Disse metodene inkluderer SMTP, SOAP, eller ved å skrive til en fil i filsystemet. Notification Services ble avviklet av Microsoft med utgivelsen av SQL Server 2008 i august 2008, og er ikke lenger en offisielt støttet komponent i SQL Server -databaseplattformen.

Integrasjonstjenester

SQL Server Integration Services (SSIS) gir ETL -muligheter for SQL Server for dataimport , dataintegrasjon og behov for datavarehus . Integrasjonstjenester inkluderer GUI-verktøy for å bygge arbeidsflyter som å trekke ut data fra forskjellige kilder, spørre data, transformere data-inkludert aggregering, de-duplisering, de-/normalisering og sammenslåing av data-og deretter eksportere de transformerte dataene til destinasjonsdatabaser eller filer.

Full tekstsøkstjeneste

SQL Server Full Text Search -tjenestearkitektur

SQL Server Full Text Search service er en spesialisert indeksering og spørringstjeneste for ustrukturert tekst lagret i SQL Server databaser. Hele tekstsøkindeksen kan opprettes på en hvilken som helst kolonne med tegnbaserte tekstdata. Det gjør det mulig å søke etter ord i tekstkolonnene. Selv om det kan utføres med SQL LIKE-operatøren, kan det være mer effektivt å bruke SQL Server Full Text Search -tjenesten. Full gir mulighet for unøyaktig matching av kildestrengen, angitt med en Rang -verdi som kan variere fra 0 til 1000 - en høyere rang betyr en mer nøyaktig samsvar. Det tillater også språklig matching ("bøyingssøk"), dvs. at språklige varianter av et ord (for eksempel et verb i en annen tid) også vil være et treff for et gitt ord (men med en lavere rangering enn en eksakt samsvar). Nærhetssøk støttes også, dvs. hvis ordene det søkes etter ikke forekommer i sekvensen de er spesifisert i spørringen, men er i nærheten av hverandre, blir de også betraktet som en treff. T-SQL avslører spesielle operatører som kan brukes til å få tilgang til FTS-funksjonene.

Full tekst søkemotor er delt inn i to prosesser: den Filter Daemon prosess ( msftefd.exe) og søk prosess ( msftesql.exe). Disse prosessene samhandler med SQL Server. Søkeprosessen inkluderer indekseren (som oppretter fulltekstindeksene) og fulltekstspørringsprosessoren. Indekseringen skanner gjennom tekstkolonner i databasen. Den kan også indeksere gjennom binære kolonner, og bruke iFilters til å trekke ut meningsfull tekst fra den binære blobben (for eksempel når et Microsoft Word -dokument er lagret som en ustrukturert binærfil i en database). IFilters er vert for Filter Daemon -prosessen. Når teksten er trukket ut, deler Filter Daemon -prosessen den opp i en ordrekke og overleverer den til indekseren. Indekseringen filtrerer bort støyord , dvs. ord som A , And , etc., som forekommer ofte og ikke er nyttige for søk. Med de resterende ordene opprettes en invertert indeks som forbinder hvert ord med kolonnene de ble funnet i. Selve SQL Server inkluderer en Gatherer -komponent som overvåker endringer i tabeller og påfører indekseren ved oppdateringer.

Når en fulltekstforespørsel mottas av SQL Server -spørringsprosessoren, blir den overlevert til FTS -spørringsprosessoren i søkeprosessen. FTS -spørringsprosessoren bryter opp spørringen i ordene som inneholder, filtrerer ut støyordene og bruker en innebygd synonymordbok for å finne ut de språklige variantene for hvert ord. Ordene blir deretter spurt mot den inverterte indeksen, og en rangering av deres nøyaktighet blir beregnet. Resultatene returneres til klienten via SQL Server -prosessen.

SQLCMD

SQLCMD er et kommandolinjeapplikasjon som følger med Microsoft SQL Server, og avslører administrasjonsfunksjonene til SQL Server. Det lar SQL -spørringer skrives og kjøres fra ledeteksten. Det kan også fungere som et skriptspråk for å lage og kjøre et sett med SQL -setninger som et skript. Slike skript lagres som en .sqlfil, og brukes enten til administrasjon av databaser eller til å lage databaseskjemaet under distribusjonen av en database.

SQLCMD ble introdusert med SQL Server 2005 og har fortsatt gjennom SQL Server -versjoner 2008, 2008 R2, 2012, 2014, 2016 og 2019. forgjengeren for tidligere versjoner var OSQL og ISQL, som var funksjonelt likeverdige når det gjelder TSQL -utførelse, og mange av kommandolinjeparametrene er identiske, selv om SQLCMD legger til ekstra allsidighet.

Visuelt studio

Microsoft Visual Studio inkluderer innebygd støtte for dataprogrammering med Microsoft SQL Server. Den kan brukes til å skrive og feilsøke kode som skal kjøres av SQL CLR. Den inneholder også en datadesigner som kan brukes til grafisk å lage, vise eller redigere databaseskjemaer. Forespørsler kan opprettes enten visuelt eller ved hjelp av kode. SSMS 2008 og fremover gir også intellisense for SQL -spørringer.

SQL Server Management Studio

SQL Server Management Studio er et GUI -verktøy som følger med SQL Server 2005 og senere for å konfigurere, administrere og administrere alle komponenter i Microsoft SQL Server. Verktøyet inneholder både skriptredigerere og grafiske verktøy som fungerer med objekter og funksjoner på serveren. SQL Server Management Studio erstatter Enterprise Manager som det primære administrasjonsgrensesnittet for Microsoft SQL Server siden SQL Server 2005. En versjon av SQL Server Management Studio er også tilgjengelig for SQL Server Express Edition, som det er kjent som SQL Server Management Studio Express (SSMSE) ).

En sentral funksjon i SQL Server Management Studio er Object Explorer, som lar brukeren bla gjennom, velge og handle på et av objektene på serveren. Den kan blant annet brukes til å visuelt observere og analysere spørringsplaner og optimalisere ytelsen til databasen. SQL Server Management Studio kan også brukes til å opprette en ny database, endre eksisterende databaseskjema ved å legge til eller endre tabeller og indekser eller analysere ytelse. Den inneholder spørringsvinduene som gir et GUI -basert grensesnitt for å skrive og utføre forespørsler.

Azure Data Studio

Azure Data Studio er en query -editor på tvers av plattformer som er tilgjengelig som valgfri nedlasting. Verktøyet lar brukerne skrive spørsmål; eksport av spørringsresultater; forplikte SQL -skript til Git -lagre og utføre grunnleggende serverdiagnostikk. Azure Data Studio støtter Windows-, Mac- og Linux -systemer.

Den ble utgitt til Generell tilgjengelighet i september 2018. Før utgivelsen ble forhåndsvisningsversjonen av programmet kjent som SQL Server Operations Studio.

Business Intelligence Development Studio

Business Intelligence Development Studio (BIDS) er IDE fra Microsoft som brukes til å utvikle dataanalyse og Business Intelligence -løsninger som bruker Microsoft SQL Server Analysis Services , Reporting Services og Integration Services . Den er basert på utviklingsmiljøet for Microsoft Visual Studio , men er tilpasset med SQL Server-tjenestespesifikke utvidelser og prosjekttyper, inkludert verktøy, kontroller og prosjekter for rapporter (ved bruk av Reporting Services), Cubes og dataminingstrukturer (ved bruk av Analysis Services). For SQL Server 2012 og senere har denne IDE fått nytt navn til SQL Server Data Tools (SSDT).

Se også

Referanser

Videre lesning

  • Lance Delano, Rajesh George et al. (2005). Wrox's SQL Server 2005 Express Edition Starter Kit (programmerer til programmerer) . Microsoft Press . ISBN  0-7645-8923-7 .
  • Delaney, Kalen , et al. (2007). Inside SQL Server 2005: Søketuning og optimalisering . Microsoft Press . ISBN  0-7356-2196-9 .
  • Ben-Gan, Itzik, et al. (2006). Inne i Microsoft SQL Server 2005: T-SQL-programmering . Microsoft Press . ISBN  0-7356-2197-7 .
  • Klaus Elk (2018). SQL Server med C# . ISBN  1-7203-5867-2 .

Eksterne linker