Microsoft SQL Server - Microsoft SQL Server

Microsoft SQL Server
Udvikler (er) Microsoft
Første udgivelse 24. april 1989 ; 32 år siden , som SQL Server 1.0 ( 1989-04-24 )
Stabil udgivelse
SQL Server 2019  Rediger dette på Wikidata / 4. november 2019 ; 22 måneder siden ( 4. november 2019 )
Skrevet i C , C ++
Operativ system Linux , Microsoft Windows Server , Microsoft Windows
Tilgængelig i Engelsk, kinesisk, fransk, tysk, italiensk, japansk, koreansk, portugisisk (Brasilien), russisk, spansk og indonesisk
Type Relationsbaseret databasesystem
Licens Proprietær software
Internet side www .microsoft .com /sql-server

Microsoft SQL Server er et relationsdatabasestyringssystem udviklet af Microsoft . Som en databaseserver er det et softwareprodukt med den primære funktion at lagre og hente data efter anmodning fra andre softwareapplikationer - som kan køre enten på den samme computer eller på en anden computer på tværs af et netværk (herunder internettet). Microsoft markedsfører mindst et dusin forskellige udgaver af Microsoft SQL Server, rettet mod forskellige målgrupper og til arbejdsbelastninger lige fra små enkeltmaskine-applikationer til store internetvendte applikationer med mange samtidige brugere .

Historie

Historien om Microsoft SQL Server begynder med det første Microsoft SQL Server-produkt-SQL Server 1.0, en 16-bit server til OS/2- operativsystemet i 1989-og strækker sig til den aktuelle dag.

Milepæle

  • MS SQL Server til OS/2 begyndte som et projekt for at port Sybase SQL Server til OS/2 i 1989 af Sybase , Ashton-Tate og Microsoft .
  • SQL Server 4.2 til NT udkom i 1993, hvilket markerer posten på Windows NT .
  • SQL Server 6.0 udgives i 1995, hvilket markerer afslutningen på samarbejdet med Sybase ; Sybase ville fortsætte med at udvikle deres egen variant af SQL Server , Sybase Adaptive Server Enterprise , uafhængigt af Microsoft.
  • SQL Server 7.0 udgives i 1998, hvilket markerer konvertering af kildekoden fra C til C ++.
  • SQL Server 2005, udgivet i 2005, afslutter den komplette revision af den gamle Sybase -kode til Microsoft -kode.
  • SQL Server 2012, udgivet i 2012, tilføjer kolonnelagret lagerplads i hukommelsen aka xVelocity.
  • SQL Server 2017, udgivet i 2017, tilføjer Linux -support til disse Linux -platforme: Red Hat Enterprise Linux , SUSE Linux Enterprise Server , Ubuntu & Docker Engine .

I øjeblikket

Fra maj 2020 understøttes følgende versioner af Microsoft:

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

Fra SQL Server 2016 og fremefter understøttes produktet kun på x64 -processorer.

Den nuværende version er Microsoft SQL Server 2019, udgivet 4. november 2019. RTM -versionen er 15.0.2000.5.

Udgaver

Microsoft gør SQL Server tilgængelig i flere udgaver, med forskellige funktionssæt og målrettet mod forskellige brugere. Disse udgaver er:

Mainstream -udgaver

Virksomhed
SQL Server Enterprise Edition indeholder både kernedatabasemotoren og tilføjelsestjenester med en række værktøjer til oprettelse og administration af en SQL Server-klynge. Det kan administrere databaser så store som 524 petabytes og adressere 12 terabyte hukommelse og understøtter 640 logiske processorer (CPU -kerner).
Standard
SQL Server Standardudgave inkluderer kernedatabasemotoren sammen med de selvstændige tjenester. Det adskiller sig fra Enterprise-udgaven ved, at det understøtter færre aktive forekomster (antal noder i en klynge) og ikke indeholder nogle funktioner med høj tilgængelighed, f.eks. Hot-add-hukommelse (gør det muligt at tilføje hukommelse, mens serveren stadig kører), og parallelle indekser.
Web
SQL Server Web Edition er en lav- TCO- mulighed for webhosting.
Business Intelligence
Introduceret i SQL Server 2012 og fokuserer på Self Service og Corporate Business Intelligence. Det inkluderer Standard Edition-funktioner og Business Intelligence-værktøjer: PowerPivot, Power View, BI Semantic Model, Master Data Services, Data Quality Services og xVelocity in-memory analytics.
Arbejdsgruppe
SQL Server Workgroup Edition indeholder kernedatabasefunktionen, men inkluderer ikke de ekstra tjenester. Bemærk, at denne udgave er blevet pensioneret i SQL Server 2012.
Express
SQL Server Express Edition er en nedskaleret, gratis udgave af SQL Server, som inkluderer kernedatabasemotoren. Selvom der ikke er nogen begrænsninger på antallet af understøttede databaser eller brugere, er det begrænset til at bruge en processor, 1 GB hukommelse og 10 GB databasefiler (4 GB databasefiler før SQL Server Express 2008 R2). Det er tænkt som en erstatning for MSDE . To ekstra udgaver giver et supersæt af funktioner, der ikke er i den originale Express Edition. Den første er SQL Server Express med værktøjer , som inkluderer SQL Server Management Studio Basic. SQL Server Express med Advanced Services tilføjer fuldtekstsøgning og rapporteringstjenester.

Specialudgaver

Installationsdisk til SQL Server 2005 Developer Edition
Azure
Microsoft Azure SQL Database er den skybaserede version af Microsoft SQL Server, der præsenteres som en platform som et servicetilbudMicrosoft Azure .
Azure MPP
Azure SQL Data Warehouse er den skybaserede version af Microsoft SQL Server i en MPP- arkitektur (massivt parallel behandling) til analysearbejdsbelastninger, præsenteret som en platform som et servicetilbudMicrosoft Azure .
Kompakt (SQL CE)
Den kompakte udgave er en integreret databasemotor. I modsætning til de andre udgaver af SQL Server er SQL CE-motoren baseret på SQL Mobile (oprindeligt designet til brug med håndholdte enheder) og deler ikke de samme binære filer. På grund af sin lille størrelse (1 MB DLL -fodaftryk) har den et markant reduceret funktionssæt i forhold til de andre udgaver. For eksempel understøtter det en delmængde af standard datatyper, understøtter ikke lagrede procedurer eller visninger eller batches med flere sætninger (blandt andre begrænsninger). Det er begrænset til 4 GB maksimal databasestørrelse og kan ikke køres som en Windows -tjeneste, Compact Edition skal hostes af programmet, der bruger det. 3.5 -versionen inkluderer understøttelse af ADO.NET Synchronization Services. SQL CE understøtter ikke ODBC -forbindelse, i modsætning til korrekt SQL Server.
Udvikler
SQL Server Developer Edition indeholder de samme funktioner som SQL Server Enterprise Edition, men er begrænset af licensen til kun at blive brugt som et udviklings- og testsystem og ikke som produktionsserver. Fra begyndelsen af ​​2016 lavede Microsoft denne udgave gratis for offentligheden.
Indlejret (SSEE)
SQL Server 2005 Embedded Edition er en specielt konfigureret navngivet forekomst af SQL Server Express -databasemotoren, som kun er tilgængelig for visse Windows -tjenester.
Evaluering
SQL Server Evaluation Edition, også kendt som Trial Edition , har alle funktionerne i Enterprise Edition, men er begrænset til 180 dage, hvorefter værktøjerne fortsat kører, men servertjenesterne stopper.
Overhalingsbane
SQL Server Fast Track er specifikt til opbevaring af datalagre i virksomhedsskala og behandling af business intelligence og kører på reference-arkitektur-hardware, der er optimeret til Fast Track.
LocalDB
LocalDB blev introduceret i SQL Server Express 2012 og er en minimal, on-demand-version af SQL Server, der er designet til applikationsudviklere. Det kan også bruges som en integreret database.
Analytics Platform System (APS)
Tidligere Parallel Data Warehouse (PDW) En massivt parallel bearbejdning (MPP) SQL Server-apparat, der er optimeret til stor datalagring, f.eks. Hundredvis af terabyte.
Datawarehouse Appliance Edition
Forudinstalleret og konfigureret som en del af et apparat i partnerskab med Dell & HP base på Fast Track-arkitekturen. Denne udgave inkluderer ikke SQL Server Integration Services, Analysis Services eller Reporting Services.sqlcmd

Udgåede udgaver

MSDE
Microsoft SQL Server Data Engine / Desktop Engine / Desktop Edition. SQL Server 7 og SQL Server 2000. Den er beregnet til brug som en applikationskomponent og indeholder ikke GUI -styringsværktøjer. Senere stillede Microsoft også et webadministrationsværktøj til rådighed. Inkluderet med nogle versioner af Microsoft Access , Microsoft udviklingsværktøjer og andre udgaver af SQL Server.
Personlig udgave
SQL Server 2000. Havde arbejdsbyrde eller forbindelsesgrænser som MSDE, men ingen databasestørrelsesgrænse. Inkluderer standardadministrationsværktøjer. Beregnet til brug som en mobil / frakoblet proxy, licenseret til brug med SQL Server 2000 Standardudgave.
Datacenter
SQL Server 2008 R2 Datacenter er en komplet udgave af SQL Server og er designet til datacentre, der har brug for høje applikationsunderstøttelser og skalerbarhed. Det understøtter 256 logiske processorer og praktisk talt ubegrænset hukommelse og leveres med StreamInsight Premium -udgave. Datacenter -udgaven er blevet pensioneret i SQL Server 2012; alle dens funktioner er tilgængelige i SQL Server 2012 Enterprise Edition.

Arkitektur

Protokollaget implementerer den eksterne grænseflade til SQL Server. Alle operationer, der kan påberåbes på SQL Server, kommunikeres til den via et Microsoft-defineret format, kaldet Tabular Data Stream (TDS). TDS er en applikationslagsprotokol, der bruges til at overføre data mellem en databaseserver og en klient. Oprindeligt designet og udviklet af Sybase Inc. til deres Sybase SQL Server relationsdatabasemotor i 1984, og senere af Microsoft i Microsoft SQL Server, kan TDS -pakker være indkapslet i andre fysiske transportafhængige protokoller, herunder TCP/IP , navngivne rør og delt hukommelse . Derfor er adgang til SQL Server tilgængelig via disse protokoller. Derudover er SQL Server API også eksponeret over webtjenester .

Data opbevaring

Datalagring er en database , som er en samling af tabeller med indtastede kolonner. SQL Server understøtter forskellige datatyper, herunder primitive typer såsom Integer , Float , Decimal , Char (inklusive tegnstrenge), Varchar (tegnstrenge med variabel længde), binær (for ustrukturerede klatter af data), Tekst (til tekstdata) blandt andre . Den afrunding af flåd til heltal anvendelser enten Symmetric Arithmetic Afrunding eller Symmetric Rund ned ( fix ) afhængigt argumenter: SELECT Round(2.5, 0)giver 3.

Microsoft SQL Server tillader også, at brugerdefinerede sammensatte typer (UDT'er) defineres og bruges. Det gør også serverstatistik tilgængelig som virtuelle tabeller og visninger (kaldet Dynamic Management Views eller DMV'er). Ud over tabeller kan en database også indeholde andre objekter, herunder visninger , lagrede procedurer , indekser og begrænsninger , sammen med en transaktionslog. En SQL Server-database kan maksimalt indeholde 2 31 objekter og kan dække flere filer på OS-niveau med en maksimal filstørrelse på 2 60 bytes (1 exabyte). Dataene i databasen gemmes i primære datafiler med en udvidelse .mdf. Sekundære datafiler, identificeret med en .ndfudvidelse, bruges til at tillade data fra en enkelt database at blive spredt på mere end en fil og eventuelt på tværs af mere end et filsystem. Logfiler er identificeret med .ldfudvidelsen.

Lagerplads tildelt til en database er opdelt i sekventielt nummererede sider , der hver er 8 KB i størrelse. En side er grundenheden for I/O til SQL Server -operationer. En side er markeret med et 96-byte header, der gemmer metadata om siden inklusive sidetal, sidetype, ledig plads på siden og ID'et for objektet, der ejer den. Sidetypen definerer dataene på siden. Disse data omfatter: data, der er gemt i databasen, et indeks, et tildelingskort, som indeholder oplysninger om, hvordan sider allokeres til tabeller og indekser; og et ændringskort, der indeholder oplysninger om de ændringer, der er foretaget på andre sider siden sidste sikkerhedskopiering eller logning, eller indeholder store datatyper såsom billede eller tekst. Mens en side er grundenheden for en I/O -operation, administreres rummet faktisk i form af et omfang, der består af 8 sider. Et databaseobjekt kan enten spænde over alle 8 sider i et omfang ("ensartet omfang") eller dele et omfang med op til 7 flere objekter ("blandet omfang"). En række i en databasetabel kan ikke strække sig over mere end én side, så den er begrænset til 8 KB i størrelse. Men hvis dataene overstiger 8 KB, og rækken indeholder varchar eller varbinary data, flyttes dataene i disse kolonner til en ny side (eller muligvis en sekvens af sider, kaldet en allokeringsenhed ) og erstattes med en markør til dataene.

Til fysisk lagring af en tabel er dens rækker opdelt i en række partitioner (nummereret 1 til n). Partitionsstørrelsen er brugerdefineret; Som standard er alle rækker i en enkelt partition. En tabel er opdelt i flere partitioner for at sprede en database over en computerklynge . Rækker i hver partition er gemt i enten B-træ eller bunke struktur. Hvis tabellen har et tilhørende, klynget indeks for at muliggøre hurtig hentning af rækker, gemmes rækkerne i rækkefølge i henhold til deres indeksværdier, hvor et B-træ giver indekset. Dataene findes i bladknuden på bladene, og andre noder, der gemmer indeksværdierne for bladdataene, der kan nås fra de respektive noder. Hvis indekset ikke er grupperet, sorteres rækkerne ikke i henhold til indeksnøglerne. En indekseret visning har den samme lagringsstruktur som en indekseret tabel. En tabel uden et klyngeindeks er gemt i en uordnet bunkestruktur. Tabellen kan dog have ikke-klyngede indekser, der muliggør hurtig hentning af rækker. I nogle situationer har bunkestrukturen ydelsesfordele i forhold til den klyngede struktur. Både dynger og B-træer kan spænde over flere tildelingsenheder.

Bufferstyring

SQL Server buffer sider i RAM for at minimere disk I/O. Enhver 8 KB-side kan bufferes i hukommelsen, og sættet af alle sider, der i øjeblikket bufferes, kaldes buffer-cachen. Mængden af ​​hukommelse, der er tilgængelig for SQL Server, bestemmer, hvor mange sider der skal cachelagres i hukommelsen. Buffercachen administreres af Buffer Manager . Enten læser fra eller skriver til en hvilken som helst side kopierer den til buffercachen. Efterfølgende læsninger eller skrivninger omdirigeres til kopien i hukommelsen frem for versionen på disken. Siden opdateres kun på disken af ​​Buffer Manager, hvis der ikke er blevet henvist til cachen i hukommelsen i nogen tid. Når du skriver sider tilbage til disken, bruges asynkron I/O, hvorved I/O -operationen udføres i en baggrunds tråd, så andre operationer ikke skal vente på, at I/O -operationen er fuldført. Hver side skrives sammen med dens checksum, når den er skrevet. Når siden læses tilbage, beregnes dens kontrolsum igen og matches med den lagrede version for at sikre, at siden ikke er blevet beskadiget eller manipuleret i mellemtiden.

Samtidighed og låsning

SQL Server tillader flere klienter at bruge den samme database samtidigt. Som sådan skal den kontrollere samtidig adgang til delte data for at sikre dataintegritet - når flere klienter opdaterer de samme data, eller klienter forsøger at læse data, der er i gang med at blive ændret af en anden klient. SQL Server giver to former for samtidighedskontrol: pessimistisk samtidighed og optimistisk samtidighed . Når pessimistisk samtidighedskontrol bruges, kontrollerer SQL Server samtidig adgang ved hjælp af låse. Låse kan enten deles eller eksklusive. Eksklusiv lås giver brugeren eksklusiv adgang til dataene - ingen anden bruger kan få adgang til dataene, så længe låsen holdes. Delte låse bruges, når nogle data læses - flere brugere kan læse fra data låst med en delt lås, men ikke erhverve en eksklusiv lås. Sidstnævnte skulle vente på, at alle delte låse blev frigivet.

Låse kan anvendes på forskellige granularitetsniveauer-på hele tabeller, sider eller endda pr. Række på tabeller. For indekser kan det enten være på hele indekset eller på indeksbladene. Det granularitetsniveau, der skal bruges, defineres pr. Database af databaseadministratoren. Mens et finkornet låsesystem giver flere brugere mulighed for at bruge tabellen eller indekset samtidigt, kræver det flere ressourcer, så det ikke automatisk giver højere ydeevne. SQL Server indeholder også to mere lette gensidige udelukkelsesløsninger - låse og spinlocks - som er mindre robuste end låse, men er mindre ressourcekrævende. SQL Server bruger dem til DMV'er og andre ressourcer, der normalt ikke har travlt. SQL Server overvåger også alle arbejdstråde, der erhverver låse for at sikre, at de ikke ender i dødspærre - hvis de gør det, tager SQL Server afhjælpende foranstaltninger, som i mange tilfælde skal dræbe en af ​​de tråde, der er viklet ind i et fastlåst og vende tilbage transaktionen den startede. For at implementere låsning indeholder SQL Server Lock Manager . Låseadministratoren opretholder en in-memory-tabel, der administrerer databaseobjekterne og låser dem, hvis nogen, sammen med andre metadata om låsen. Adgang til ethvert delt objekt formidles af låseadministratoren, som enten giver adgang til ressourcen eller blokerer den.

SQL Server giver også den optimistiske samtidighedsstyringsmekanisme, der ligner den multiversion samtidighedskontrol, der bruges i andre databaser. Mekanismen gør det muligt at oprette en ny version af en række, hver gang rækken opdateres, i modsætning til at overskrive rækken, dvs. en række er yderligere identificeret med id'et for den transaktion, der oprettede versionen af ​​rækken. Både de gamle såvel som de nye versioner af rækken gemmes og vedligeholdes, selvom de gamle versioner flyttes ud af databasen til en systemdatabase identificeret som Tempdb. Når en række er i gang med at blive opdateret, blokeres andre anmodninger ikke (i modsætning til låsning), men udføres på den ældre version af rækken. Hvis den anden anmodning er en opdateringserklæring, resulterer den i to forskellige versioner af rækkerne - begge gemmes af databasen, identificeret med deres respektive transaktions -id'er.

Datahentning og programmerbarhed

Hovedformen til at hente data fra en SQL Server -database er forespørgsel efter det. Forespørgslen udtrykkes ved hjælp af en variant af SQL kaldet T-SQL , en dialekt Microsoft SQL Server deler med Sybase SQL Server på grund af dens arv. Forespørgslen angiver deklarativt , hvad der skal hentes. Det behandles af forespørgselsprocessoren, som finder ud af sekvensen af ​​trin, der vil være nødvendige for at hente de ønskede data. Handlingssekvensen, der er nødvendig for at udføre en forespørgsel, kaldes en forespørgselsplan . Der kan være flere måder at behandle den samme forespørgsel på. For eksempel vil en forespørgsel, der indeholder en join -sætning og en select -sætning, udføre join på begge tabeller og derefter udføre select på resultaterne give det samme resultat som at vælge fra hver tabel og derefter udføre join, men resultere i forskellig udførelse planer. I sådanne tilfælde vælger SQL Server den plan, der forventes at give resultaterne på kortest mulig tid. Dette kaldes forespørgselsoptimering og udføres af forespørgselsprocessoren selv.

SQL Server indeholder en omkostningsbaseret forespørgselsoptimering, der forsøger at optimere omkostningerne, hvad angår de ressourcer, der skal til for at udføre forespørgslen. På grund af en forespørgsel ser forespørgselsoptimeren på databaseskemaet , databasestatistikken og systembelastningen på det tidspunkt. Den beslutter derefter, hvilken sekvens der skal få adgang til tabellerne, der henvises til i forespørgslen, hvilken sekvens der skal udføres operationerne, og hvilken adgangsmetode, der skal bruges til at få adgang til tabellerne. For eksempel, hvis tabellen har et tilknyttet indeks, om indekset skal bruges eller ej: hvis indekset er i en kolonne, der ikke er unik for de fleste kolonner (lav "selektivitet"), er det måske ikke værd at bruge indekset for at få adgang til dataene. Endelig beslutter den, om forespørgslen skal udføres samtidigt eller ej. Selvom en samtidig udførelse er dyrere i forhold til den samlede processortid, kan det betyde, at eksekveringen faktisk er delt til forskellige processorer, fordi den udføres hurtigere. Når en forespørgselsplan er genereret for en forespørgsel, gemmes den midlertidigt. For yderligere påkaldelser af den samme forespørgsel bruges den cachelagrede plan. Ubrugte planer kasseres efter nogen tid.

SQL Server tillader også, at lagrede procedurer defineres. Lagrede procedurer er parameteriserede T-SQL-forespørgsler, der gemmes på selve serveren (og ikke udstedes af klientprogrammet, som det er tilfældet med generelle forespørgsler). Lagrede procedurer kan acceptere værdier sendt af klienten som inputparametre og sende resultater tilbage som outputparametre. De kan kalde definerede funktioner og andre lagrede procedurer, herunder den samme lagrede procedure (op til et bestemt antal gange). De kan selektivt få adgang til . I modsætning til andre forespørgsler har lagrede procedurer et tilknyttet navn, der bruges ved runtime til at løse de faktiske forespørgsler. Fordi koden ikke behøver at blive sendt fra klienten hver gang (da den kan tilgås ved navn), reducerer den netværkstrafik og forbedrer ydelsen noget. Udførelsesplaner for lagrede procedurer cachelagres også efter behov.

T-SQL

T-SQL (Transact-SQL) er Microsofts proprietære proceduremæssige sprogudvidelse til SQL Server. Det indeholder REPL (Read-Eval-Print-Loop) instruktioner, der udvider standard SQL's instruktionssæt til Data Manipulation ( DML ) og Data Definition ( DDL ) instruktioner, herunder SQL Server-specifikke indstillinger, sikkerhed og databasestatistikhåndtering.

Det viser nøgleord til de operationer, der kan udføres på SQL Server, herunder oprettelse og ændring af databaseskemaer, indtastning og redigering af data i databasen samt overvågning og administration af selve serveren. Klientprogrammer, der forbruger data eller administrerer serveren, vil udnytte SQL Server-funktionaliteten ved at sende T-SQL-forespørgsler og udsagn, som derefter behandles af serveren, og resultater (eller fejl) returneres til klientprogrammet. Til dette viser det skrivebeskyttede tabeller, hvorfra serverstatistik kan læses. Ledelsesfunktionalitet afsløres via systemdefinerede lagrede procedurer, som kan påberåbes fra T-SQL-forespørgsler for at udføre administrationsoperationen. Det er også muligt at oprette sammenkædede servere ved hjælp af T-SQL. Tilknyttede servere tillader en enkelt forespørgsel at behandle operationer, der udføres på flere servere.

SQL Server Native Client (aka SNAC)

SQL Server Native Client er det oprindelige klientsiden dataadgang bibliotek til Microsoft SQL Server, udgave 2005. Det implementerer indbygget support til SQL Server -funktioner, herunder implementering af Tabular Data Stream , understøttelse af spejlede SQL Server -databaser, fuld understøttelse af alle datatyper understøttet af SQL Server, asynkrone operationer, forespørgselsmeddelelser, krypteringssupport samt modtagelse af flere resultatsæt i en enkelt databasesession. SQL Server Native Client bruges af emhætten af ​​SQL Server-plug-ins til andre dataadgangsteknologier, herunder ADO eller OLE DB . SQL Server Native Client kan også bruges direkte og omgå de generiske lag for dataadgang.

Den 28. november 2011 blev en preview -udgivelse af SQL Server ODBC -driveren til Linux frigivet.

SQL CLR

Microsoft SQL Server 2005 indeholder en komponent ved navn SQL CLR ("Common Language Runtime"), via hvilken den integreres med .NET Framework . I modsætning til de fleste andre applikationer, der bruger .NET Framework, er SQL Server selv vært for .NET Framework -runtime , dvs. krav til hukommelse, trådning og ressourcehåndtering i .NET Framework opfyldes af SQLOS selv i stedet for det underliggende Windows -operativsystem. SQLOS leverer også fastlåsningssøgning og -opløsningstjenester til .NET -kode. Med SQL CLR kan lagrede procedurer og udløsere skrives på ethvert administreret .NET -sprog , herunder C# og VB.NET . Administreret kode kan også bruges til at definere UDT'er ( brugerdefinerede typer ), som kan forblive i databasen. Managed kode er kompileret til CLI-forsamlinger og efter at være blevet verificeret for typen sikkerhed , registreret på databasen. Derefter kan de påberåbes som enhver anden procedure. Imidlertid er kun et undersæt af basisklassebiblioteket tilgængeligt, når der køres kode under SQL CLR. De fleste API'er vedrørende brugergrænsefladefunktioner er ikke tilgængelige.

Når du skriver kode til SQL CLR, kan du få adgang til data, der er gemt i SQL Server -databaser, ved hjælp af ADO.NET API'erne som enhver anden administreret applikation, der har adgang til SQL Server -data. Imidlertid skaber det en ny databasesession, forskellig fra den, hvor koden udføres. For at undgå dette giver SQL Server nogle forbedringer til ADO.NET -udbyderen, der gør det muligt at omdirigere forbindelsen til den samme session, som allerede er vært for den kørende kode. Sådanne forbindelser kaldes kontekstforbindelser og indstilles ved at indstille context connectionparameter til truei forbindelsesstrengen. SQL Server giver også flere andre forbedringer til ADO.NET API, herunder klasser til arbejde med tabeldata eller en enkelt række data samt klasser til at arbejde med interne metadata om de data, der er gemt i databasen. Det giver også adgang til XML -funktionerne i SQL Server, herunder XQuery -understøttelse. Disse forbedringer er også tilgængelige i T-SQL-procedurer som følge af introduktionen af ​​den nye XML Datatype (forespørgsel, værdi, noderfunktioner).

Services

SQL Server indeholder også et sortiment af tilføjelsestjenester. Selvom disse ikke er afgørende for driften af ​​databasesystemet, leverer de værditilvækstydelser oven på kernedatabasesystemet. Disse tjenester kører enten som en del af en SQL Server-komponent eller er ude af proces som Windows Service og præsenterer deres egen API til at styre og interagere med dem.

Maskinlæringstjenester

SQL Server Machine Learning -tjenesterne opererer inden for SQL -serverinstansen, så folk kan lave maskinlæring og dataanalyse uden at skulle sende data på tværs af netværket eller være begrænset af hukommelsen på deres egne computere. Tjenesterne leveres med Microsofts R- og Python -distributioner, der indeholder almindeligt anvendte pakker til datavidenskab , sammen med nogle proprietære pakker (f.eks. Revoscalepy , RevoScaleR , microsoftml), der kan bruges til at oprette maskinmodeller i stor skala.

Analytikere kan enten konfigurere deres klientmaskine til at oprette forbindelse til en ekstern SQL-server og skubbe scriptudførelserne til den, eller de kan køre et R- eller Python-script som et eksternt script inde i en T-SQL-forespørgsel. Den uddannede machine learning -model kan gemmes inde i en database og bruges til scoring.

Servicemægler

Anvendes inde i et eksempel, programmeringsmiljø. For applikationer på tværs af instanser kommunikerer Service Broker over TCP/IP og gør det muligt at synkronisere de forskellige komponenter via udveksling af meddelelser. Service Broker, der kører som en del af databasemotoren, leverer en pålidelig platform til beskeder og meddelelseskø til SQL Server -applikationer.

Servicemæglertjenester består af følgende dele:

  • beskedtyper
  • kontrakter
  • køer
  • serviceprogrammer
  • ruter

Meddelelsestypen definerer det dataformat, der bruges til meddelelsen. Dette kan være et XML -objekt, almindelig tekst eller binære data samt et nul -meddelelsesindhold til meddelelser. Kontrakten definerer, hvilke meddelelser der bruges i en samtale mellem tjenester, og hvem der kan sætte beskeder i køen. Køen fungerer som lagerudbyder for beskederne. De implementeres internt som tabeller af SQL Server, men understøtter ikke indsæt, opdater eller slet funktionalitet. Serviceprogrammet modtager og behandler servicemæglerbeskeder. Normalt implementeres serviceprogrammet som lagret procedure eller CLR -applikation. Ruter er netværksadresser, hvor servicemægleren er placeret på netværket.

Også Service Broker understøtter sikkerhed funktioner som netværksgodkendelse (ved hjælp af NTLM , Kerberos , eller certifikater tilladelser ), integritet kontrol, og besked kryptering .

Replikationstjenester

SQL Server Replication Services bruges af SQL Server til at replikere og synkronisere databaseobjekter, enten i sin helhed eller en delmængde af de tilstedeværende objekter, på tværs af replikationsagenter, som kan være andre databaseservere på tværs af netværket eller database -caches på klientsiden. Replikationstjenester følger en udgiver/abonnentmodel, dvs. ændringerne sendes ud af en databaseserver ("udgiver") og modtages af andre ("abonnenter"). SQL Server understøtter tre forskellige former for replikation:

Transaktionsreplikation
Hver transaktion foretaget til forlagsdatabasen (stamdatabase) synkroniseres til abonnenter, der opdaterer deres databaser med transaktionen. Transaktionsreplikation synkroniserer databaser i næsten realtid.
Flet replikation
Ændringer foretaget i både udgiver- og abonnentdatabaser spores, og periodisk synkroniseres ændringerne tovejs mellem udgiveren og abonnenterne. Hvis de samme data er blevet ændret forskelligt i både udgiveren og abonnentdatabaserne, vil synkronisering resultere i en konflikt, der skal løses, enten manuelt eller ved hjælp af foruddefinerede politikker. rowguid skal konfigureres i en kolonne, hvis flettereplikation er konfigureret.
Snapshot -replikation
Snapshot-replikation udgiver en kopi af hele databasen (det daværende snapshot af dataene) og replikeres ud til abonnenterne. Yderligere ændringer af øjebliksbilledet spores ikke.

Analysetjenester

SQL Server Analysis Services (SSAS) tilføjer OLAP- og data mining -funktioner til SQL Server -databaser. OLAP -motoren understøtter MOLAP , ROLAP og HOLAP lagringstilstande til data. Analysis Services understøtter XML for Analysis -standarden som den underliggende kommunikationsprotokol. Kubedataene kan tilgås ved hjælp af MDX- og LINQ -forespørgsler. Datadriftsspecifik funktionalitet afsløres via DMX -forespørgselssproget. Analysetjenester omfatter forskellige algoritmer - Beslutningstræer , klynge -algoritme, Naive Bayes -algoritme, tidsserieanalyser, sekvensgruppering -algoritme, lineær og logistisk regressionsanalyse og neurale netværk - til brug i datamining.

Rapporteringstjenester

SQL Server Reporting Services (SSRS) er et rapportgenereringsmiljø for data indsamlet fra SQL Server -databaser. Det administreres via en webgrænseflade . Rapporteringstjenester har en webtjenestegrænseflade, der understøtter udviklingen af ​​brugerdefinerede rapporteringsapplikationer. Rapporter oprettes som RDL -filer.

Rapporter kan designes ved hjælp af nylige versioner af Microsoft Visual Studio (Visual Studio.NET 2003, 2005 og 2008) med Business Intelligence Development Studio , installeret eller med den medfølgende Report Builder . Når de er oprettet, kan RDL -filer gengives i en række forskellige formater, herunder Excel, PDF , CSV , XML , BMP , EMF , GIF , JPEG , PNG og TIFF og HTML Webarkiv.

Meddelelsestjenester

Oprindeligt introduceret som en add-on efter udgivelse til SQL Server 2000, var Notification Services samlet som en del af Microsoft SQL Server-platformen for første og eneste gang med SQL Server 2005. SQL Server Notification Services er en mekanisme til generering af datadrevne meddelelser, der sendes til Notification Services -abonnenter. En abonnent registrerer sig for en bestemt begivenhed eller transaktion (som er registreret på databaseserveren som en udløser); når hændelsen opstår, kan Notification Services bruge en af ​​tre metoder til at sende en besked til abonnenten, der informerer om begivenheden. Disse metoder inkluderer SMTP, SOAP eller ved at skrive til en fil i filsystemet. Notification Services blev afbrudt af Microsoft med udgivelsen af ​​SQL Server 2008 i august 2008 og er ikke længere en officielt understøttet komponent i SQL Server -databaseplatformen.

Integrationstjenester

SQL Server Integration Services (SSIS) giver ETL -funktioner til SQL Server til dataimport , dataintegration og datalagringsbehov . Integration Services inkluderer GUI-værktøjer til at opbygge arbejdsgange, såsom udtræk af data fra forskellige kilder, forespørgsel på data, transformering af data-herunder aggregering, de-duplikering, de-/normalisering og fletning af data-og derefter eksportere de transformerede data til destinationsdatabaser eller filer.

Fuld tekstsøgningstjeneste

SQL -arkitekturen til fuld tekstsøgning i SQL Server

SQL Server Full Text Search service er en specialiseret indekserings- og forespørgselsservice for ustruktureret tekst, der er gemt i SQL Server -databaser. Fuldtekstsøgningsindekset kan oprettes på enhver kolonne med tegnbaserede tekstdata. Det giver mulighed for at søge efter ord i tekstkolonnerne. Selvom det kan udføres med SQL LIKE-operatoren, kan det være mere effektivt at bruge SQL Server Full Text Search -service. Fuld giver mulighed for unøjagtig matchning af kildestrengen, angivet med en rangværdi , der kan variere fra 0 til 1000 - en højere rang betyder et mere præcist match. Det tillader også sproglig matchning ("bøjningssøgning"), dvs. sproglige varianter af et ord (f.eks. Et verbum i en anden tid) vil også være et match for et givet ord (men med en lavere rangering end et eksakt match). Nærhedssøgninger understøttes også, dvs. hvis de ord, der søges efter, ikke forekommer i den rækkefølge, de er angivet i forespørgslen, men er i nærheden af ​​hinanden, betragtes de også som et match. T-SQL viser særlige operatører, der kan bruges til at få adgang til FTS-funktionerne.

Hele teksten søgemaskine er opdelt i to processer: den Filter Daemon proces ( msftefd.exe) og Search processen ( msftesql.exe). Disse processer interagerer med SQL Server. Søgeprocessen inkluderer indekseren (der opretter fuldtekstindekserne) og fuldtekstforespørgselsprocessoren. Indekseren scanner gennem tekstkolonner i databasen. Det kan også indeksere gennem binære kolonner og bruge iFilters til at udtrække meningsfuld tekst fra den binære klat (f.eks. Når et Microsoft Word -dokument er gemt som en ustruktureret binær fil i en database). IFilters hostes af Filter Daemon -processen. Når teksten er ekstraheret, opdeler Filter Daemon -processen den i en række ord og afleverer den til indekseren. Den indeksør filtrerer støj ord , det vil sige, ord som A , Og , etc., som forekommer hyppigt og er ikke anvendelig for søgning. Med de resterende ord oprettes et omvendt indeks , der forbinder hvert ord med de kolonner, de blev fundet i. Selve SQL Server indeholder en Gatherer -komponent, der overvåger ændringer i tabeller og påberåber indekseren i tilfælde af opdateringer.

Når en fuld tekstforespørgsel modtages af SQL Server -forespørgselsprocessoren, overdrages den til FTS -forespørgselsprocessoren i søgeprocessen. FTS -forespørgselsprocessoren opdeler forespørgslen i de sammensatte ord, filtrerer støjordene og bruger en indbygget synonymordbog til at finde ud af de sproglige varianter for hvert ord. Ordene spørges derefter mod det inverterede indeks, og en grad af deres nøjagtighed beregnes. Resultaterne returneres til klienten via SQL Server -processen.

SQLCMD

SQLCMD er et kommandolinjeprogram, der leveres med Microsoft SQL Server, og afslører administrationsfunktionerne i SQL Server. Det gør det muligt at skrive og eksekvere SQL -forespørgsler fra kommandoprompten. Det kan også fungere som et scriptsprog at oprette og køre et sæt SQL -sætninger som et script. Sådanne scripts gemmes som en .sqlfil og bruges enten til styring af databaser eller til at oprette databaseskemaet under installationen af ​​en database.

SQLCMD blev introduceret med SQL Server 2005 og er fortsat gennem SQL Server -versioner 2008, 2008 R2, 2012, 2014, 2016 og 2019. Dens forgænger for tidligere versioner var OSQL og ISQL, som var funktionelt ækvivalente, hvad angår TSQL -udførelse, og mange af kommandolinjeparametrene er identiske, selvom SQLCMD tilføjer ekstra alsidighed.

Visual Studio

Microsoft Visual Studio inkluderer native support til dataprogrammering med Microsoft SQL Server. Det kan bruges til at skrive og fejlsøge kode, der skal udføres af SQL CLR. Det indeholder også en datadesigner, der kan bruges til grafisk at oprette, se eller redigere databaseskemaer. Forespørgsler kan oprettes enten visuelt eller ved hjælp af kode. SSMS 2008 og fremover giver også intellisense til SQL -forespørgsler.

SQL Server Management Studio

SQL Server Management Studio er et GUI -værktøj inkluderet i SQL Server 2005 og senere til konfiguration, administration og administration af alle komponenter i Microsoft SQL Server. Værktøjet indeholder både scriptredaktører og grafiske værktøjer, der arbejder med objekter og funktioner på serveren. SQL Server Management Studio erstatter Enterprise Manager som den primære administrationsgrænseflade til Microsoft SQL Server siden SQL Server 2005. En version af SQL Server Management Studio er også tilgængelig til SQL Server Express Edition, for hvilken den er kendt som SQL Server Management Studio Express (SSMSE ).

En central funktion i SQL Server Management Studio er Object Explorer, som giver brugeren mulighed for at gennemse, vælge og handle på ethvert af objekterne på serveren. Den kan blandt andet bruges til visuelt at observere og analysere forespørgselsplaner og optimere databasens ydeevne. SQL Server Management Studio kan også bruges til at oprette en ny database, ændre ethvert eksisterende databaseskema ved at tilføje eller ændre tabeller og indekser eller analysere ydeevne. Det inkluderer forespørgselsvinduerne, der giver en GUI -baseret grænseflade til at skrive og udføre forespørgsler.

Azure Data Studio

Azure Data Studio er en forespørgselseditor på tværs af platforme, der kan downloades som ekstraudstyr. Værktøjet giver brugerne mulighed for at skrive forespørgsler; eksport forespørgsel resultater; overføre SQL -scripts til Git -lagre og udføre grundlæggende serverdiagnostik. Azure Data Studio understøtter Windows-, Mac- og Linux -systemer.

Det blev frigivet til Generel tilgængelighed i september 2018. Før versionen blev preview -versionen af ​​applikationen kendt som SQL Server Operations Studio.

Business Intelligence Development Studio

Business Intelligence Development Studio (BIDS) er IDE fra Microsoft, der bruges til at udvikle dataanalyse og Business Intelligence -løsninger ved hjælp af Microsoft SQL Server Analysis Services , Reporting Services og Integration Services . Det er baseret på Microsoft Visual Studio- udviklingsmiljøet, men er tilpasset med de SQL Server-servicespecifikke udvidelser og projekttyper, herunder værktøjer, kontroller og projekter til rapporter (ved hjælp af Reporting Services), Cubes og data mining- strukturer (ved hjælp af Analysis Services). For SQL Server 2012 og senere er denne IDE blevet omdøbt til SQL Server Data Tools (SSDT).

Se også

Referencer

Yderligere læsning

  • 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). Inde i SQL Server 2005: Forespørgselstemning og optimering . Microsoft Press . ISBN  0-7356-2196-9 .
  • Ben-Gan, Itzik, et al. (2006). Inde 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 links