Vyvinul | Microsoft |
---|---|
První verze | 24.dubna 1989 |
Poslední verze | 2019 (4. listopadu 2019) |
Napsáno | C ++ , C a C # |
Operační systém | Linux , Microsoft Windows a Windows Server |
Číst formáty | Jazyk definice zprávy SQL Server Reporting Services ( d ) a jazyk definice zprávy SQL Server Reporting Services (UTF-8) ( d ) |
Písemné formáty | Jazyk definice zprávy SQL Server Reporting Services ( d ) a jazyk definice zprávy SQL Server Reporting Services (UTF-8) ( d ) |
Typ | Systém správy relačních databází ( in ) |
Licence | Patentovaná licence a EULA |
webová stránka | www.microsoft.com/sql-server |
Microsoft SQL Server je systém pro správu databází (DBMS) v jazyce SQL , který mimo jiné zahrnuje RDBMS ( relační DBMS ) vyvinutý a uváděný na trh společností Microsoft . Funguje pod Windows a Linux OS (odbřezna 2016), ale je možné jej spustit v systému Mac OS pomocí Dockeru , protože na webu společnosti Microsoft existuje verze ke stažení.
Přestože byla původně vyvinuta společnostmi Sybase a Microsoft, byla Ashton-Tate také spojena s její první verzí vydanou v roce 1989. Tato verze byla vydána na platformách Unix a OS / 2 . Microsoft od té doby přenesl tento databázový systém na Windows .
Když byl vytvořen, Sybase SQL Server zdědil principy enginu Ingres původně vyvinutého University of Berkeley.
V roce 1994, kdy došlo k přerušení partnerství mezi těmito dvěma společnostmi, společnost Microsoft vydala verzi 6.0 a 6.5 pouze na platformě Windows NT.
Microsoft SQL Server je nyní součástí technické strategie databáze společnosti Microsoft. Stroj MSDE, který je základem serveru SQL, by měl nakonec nahradit stroj Jet (ten, který spravuje databáze Access ) v aplikacích, jako je Exchange a Active Directory .
Verze serveru SQL Server z roku 2005 byla vydána dne3. listopadu 2005současně s Visual Studio 2005 . Podpora pro Windows Vista a Windows Server 2008 byla přidána až po aktualizaci Service Pack 2 (SP2). Aktuálně je k dispozici aktualizace Service Pack 3. Optimalizátor byl zcela přepracován, stejně jako modul relace.
Verze serveru SQL Server 2008 (krycí jméno Katmaï) byla vydána v srpnu 2008 . Menší verze z roku 2008 R2 byla vydána v roce 2010.
Verze serveru SQL Server z roku 2012 byla vydána v dubnu 2012 .
Verze serveru SQL Server z roku 2014 byla vydána dne 1 st 04. 2014 s motorem „v paměti“ doplňujícím relační modul.
Verze SQL Server 2016 byla vydána dne 1 st 06. 2016.
Během vývoje verze 2005 byl projekt v té době jedním z největších IT projektů na světě. Na kódování jádra se podílelo více než 1 600 vývojářů a odhaduje se, že na něm pracovalo přímo nebo nepřímo více než 10 000 dalších lidí ( interakce člověk-stroj , dokumentace, překlad atd.).
SQL Server se od konkurence odlišuje velkou bohatostí, která nevyžaduje žádné další placené možnosti v rámci limitu zvolené verze.
Ve srovnání se svými konkurenty Oracle , MySQL nebo PostgreSQL se SQL Server vyznačuje tím, že se jedná o RDBMS (Relational Database Management System), původně vícebázové a vícenásobné schéma . Je možné provádět nativní mezipodnikové dotazy. Například následující dotaz propojuje dvě tabulky ze dvou různých databází:
SELECT * FROM BASE_A.dbo.TABLE1 AS T1 INNER JOIN BASE_B.dbo.TABLE2 AS T2 ON T1.ID = T2.ID;Optimalizátor je schopen vytvořit dokonale optimalizovaný plán dotazů, i když dotaz konzultuje data z několika databází ...
Přestože je PostGreSQL vícebázový a multischema, není tato možnost simultánního dotazování nativní a je nutné ji projít prostředníkem „dblink“, který zakazuje spojení a tedy jakoukoli možnost optimalizace ... Oracle se svou verzí 12 se snaží tuto integraci stejný koncept více databází (tzv. multi-tenant ), ale trpí stejným problémem jako PostGreSQL. MySQL je jedno schéma, vícebázové.
Flexibilita správy schémat SQL je taková, že je možné přenést objekt z jednoho schématu do druhého pomocí jediného příkazu ALTER SCHEMA.
Vlastníci se liší od schémat a je možné převést vlastnictví databáze, schématu nebo objektu z jednoho uživatele SQL na jiného pomocí příkazu ALTER AUTHORIZATION.
SQL Server nativně pracuje paralelně. Jakmile se odhaduje, že dotaz překročí prahovou hodnotu nákladů, při které lze plán dotazu paralelizovat, přepíše SQL Server plán pomocí vícevláknových algoritmů a pokud je nový plán shledán levnějším, dojde k nahrazení. Tato funkce existuje ve všech edicích a nejedná se o placený modul, který lze navíc přidávat, jako je tomu v případě Oracle.
Fyzické operace čtení a zápisu také těží ze systematického paralelismu, protože operace IO jsou prováděny přímo serverem SQL Server, a nikoli prostřednictvím systémové vrstvy, jako je tomu v případě PostGreSQL nebo MySQL.
Ve verzi Enterprise je stroj schopen komprimovat data na úrovni řádků nebo stránek v tabulkách i v indexech. Záložní komprese je k dispozici od standardního vydání od verze 2008 R2.
Od verze SQL Server 7 (1998) umožňuje server SQL Server zálohovat „otevřenou databázi“ bez přerušení datové služby a bez narušení činnosti uživatele. Tuto zálohu lze provést globálně, skupinou souborů, souborem nebo prostřednictvím protokolu transakcí.
Na serveru SQL Server omezení jedinečnosti berou v úvahu značku NULL jako hodnotu, a proto zakazují přítomnost více než jedné NULL ve sloupcích takového omezení. To neodpovídá standardu SQL, protože NULL je absence hodnoty, jedinečnost nevzniká. Existuje však snadný způsob, jak tento problém vyřešit, a to vytvořit jedinečný filtrovaný index, který bude souviset s oceňovanými daty.
Příklad, nechme tabulku:
CREATE TABLE T_EMPLOYE_EMP (EMP_ID INT PRIMARY KEY, EMP_NOM VARCHAR(32) NOT NULL, EMP_MATRICULE CHAR(8));Protože číslo personálu musí být pro známé hodnoty jedinečné, vytvoření jedinečného indexu filtrovaného na hodnoty vyjádřené ve sloupci číslo personálu umožňuje vyřešit problém:
CREATE UNIQUE INDEX X_EMP_MATRICULE ON T_EMPLOYE_EMP(EMP_MATRICULE) WHERE EMP_MATRICULE IS NOT NULL;Ve spouštěčích serveru SQL Server je možné aktualizovat cílovou tabulku události na počátku spuštění spouštěče, na rozdíl od mnoha databází, které tuto možnost zakazují (chyba „mutantní tabulky“ v Oracle). Je třeba si uvědomit, že to byla Sybase, kdo původně vynalezl koncept spouště v roce 1986, čímž poprvé vložil spustitelný kód do relační databáze.
Například aktivační událost UPDATEv tabulce může upravit data, která čekají na změnu:
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);Ve výše uvedeném příkladu jsou názvy nově vložených nebo změněných jmen uvedena velkými písmeny.
Vzhledem k tomu, že reentrance může vést k rekurzi, různá nastavení umožňují řešení tohoto problému na úrovni databáze i na úrovni instance.
Na rozdíl od Oracle nebo PostGreSQL, kde se materializovaná zobrazení musí většinu času před použitím aktualizovat, jsou indexovaná zobrazení serveru SQL vždy synchronní. Optimalizátor je navíc schopen za běhu nahradit indexované zobrazení pro celý dotaz nebo jeho část (verze Enterprise), což je velmi praktické, když DBA nemá přístup ke kódu klientských programů (v případě aplikací editorů) .
U aplikací navržených v .net a pomocí konektoru ADO provádí SQL Server automatické sdružování. Jednoduchý fakt rozlišení dvou spojovacích řetězců stačí k vytvoření dvou různých fondů. Aby bylo sdružování účinné, musí být připojení ukončena, jakmile dojde k počítačovému zpracování.
Prostřednictvím různých prostředků vám SQL Server umožňuje centrálně spravovat sadu serverů. Můžete vytvořit server centralizované správy a přidat seznam serverů SQL společnosti, abyste mohli spouštět dotazy odesílané současně na všech serverech, nebo vytvořit nebo provést stejný postup na všech serverech současně, to v nástroji SSMS (SQL Server Management Studio).
Podobně vám plánovač úloh a správce výstrah (agent SQL) umožňuje definovat úlohy na více serverech, jako je zálohování, defragmentace indexů, přepočet statistik nebo kontrola fyzické integrity prostorů.
Stroj SQL Server OLTP má mnoho funkcí, které by bylo obtížné vyjmenovat všechny. Zde je několik, které dělají rozdíl s lehčími DBMS jako MySQL nebo PostGreSQL ...
SQL Server je od verze 2014 vybaven modulem „In Memory“. Tabulky a indexy mohou být zcela v paměti (struktura a data: data a schéma) nebo trvalé na úrovni struktury (pouze data). Postupy v dobře definovaných mezích lze kompilovat nativně, nikoli interpretovat. Aktualizace zůstávají transakční, aniž by bylo nutné zapisovat do souborů protokolu transakcí (správa verzí „v paměti“). To umožňuje velmi významné zlepšení výkonu při zpracování složitých výpočtů týkajících se velkých objemů dat. Typickým příkladem je výpočet finanční výkonnosti cen na akciovém trhu v reálném čase.
SQL Server jako první s verzí 2005 představil operátor intra-join APPLY, aby usnadnil načítání dat zapouzdřených ve virtuální tabulce ze sloupce tabulky, jako je tomu v případě použití funkce tabulky v dotazu, kde jeden z argumentů pochází z jedné z tabulek v dotazu nebo z tabulky XML. Operátorovi APPLYmusí předcházet klíčové slovo CROSSnebo OUTER, aby bylo možné definovat jeho chování. S CROSS-li argument NULL, ovlivněné řádky jsou odstraněny z výsledku a zároveň s OUTERnimi zůstanou zachovány.
Operátor APPLYje podobný operátoru LATERALstandardu SQL, ale jeho rozšířenější syntaxe umožňuje operace, které LATERALnelze provést. Společnost Oracle nedávno představila tohoto operátora ve verzi 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 DESCV tomto příkladu použijeme tabulkovou funkci sys.dm_exec_query_plan, která vrací plán provádění, z plánu „handle“ poskytnutého argumentem „plan_handle“ nalezeným v pohledu sys.dm_exec_query_stats. Tento dotaz umožňuje zjistit 10 dotazů, které spotřebovaly nejvíce času CPU od spuštění instance.
SQL Server má jednu z nejbohatších sbírek řazení (3 887 ve verzi 2014), což vám umožňuje ovládat 101 jazyků, mezi nimiž jsou kromě francouzštiny i Bretonština a Korsika! Srovnání vám umožní provádět vyhledávání s přihlédnutím k případu (velká písmena, malá písmena - CS / CI), akcenty a další diakritická znaménka (akcenty, cedilla, ligatury ... - AS / AI), znaky šířky (2 = 2 ? - WS) nebo různé typy kana (katakana a hiragana z japonštiny - KS), nebo dokonce provádět binární srovnání s přihlédnutím k hexadecimálnímu kódu. Kompletace jsou zcela nezávislé na znakových sadách (sady Iso_1), přestože je lze simulovat (ASCII, UNICODE, UTF16, EBCDIC ...). Podpora řazení je poskytována na čtyřech úrovních: server (1), základna (2), sloupec tabulky nebo zobrazení (3) a nakonec predikát (4) zpracování řetězců znaků a třídění textových sloupců v dotazech.
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_WSV následujícím příkladu hledáme název připojení s „uvolněným“ řazení (bez ohledu na velká a malá písmena) a heslo s „těsným“ řazení (binární):
Seznam kompletací dostupných na serveru lze získat pomocí dotazu:
SELECT * FROM sys.fn_helpcollations()Od verze 2005 podporuje SQL Server typ XML (fragment) a umožňuje vám manipulovat s XML pomocí dotazů XQuery / XPath. Sloupec typu XML lze zadat prostřednictvím kolekce schématu XML (XSD - definice schématu XML). Následující příklad ukazuje vytvoření kolekce elementů schématu XML a poté vytvoření tabulky se zadaným sloupcem XML s touto kolekcí schémat:
-- 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) );Dotaz SELECT SELECT může generovat výstup XML namísto tabulkového výsledku prostřednictvím klauzule Transact-SQL „FOR XML“, pro kterou existuje mnoho možností prezentace. Níže uvedený příklad se používá k představení hierarchie XML se seznamem omezení tabulky ve formě prvků XML:
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');Tento dotaz vrátí například následující 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>Nakonec je možné přímo zpracovávat data XML v rutinách (například pocházejících ze souborů) pomocí funkcí a postupů OPENXML, sp_xml_preparedocument, sp_xml_removedocument ...
Od verze 2008 integruje SQL Server GIS ve všech verzích. To umožňuje konstrukci geometrických (euklidovských geometrií) nebo geografických (s přihlédnutím k prostorovému zakřivení zemské kůry) objektů pomocí typů GEOMETRIE a GEOGRAFIE (POINT, LINESTRING, POLYGON a kombinace ...). Je založen na standardu OGC , stejně jako prostorový doplněk PostGIS pro PostgreSQL . verze 2012 přidala zakřivené objekty (CircularStrings, CompoundCurves, CurvePolygons ...) a lepší přesnost výpočtů (48 bitů namísto 27 dříve).
Prostorové indexy umožňují provádět určité metody, jako jsou STContains, STDistance, STEquals, STIntersects, STOverlaps, STTouches, STWithin ...
V souladu se standardem SQL, který nabízí DATALINK, implementuje SQL Server podobný nástroj s názvem FileStream, který umožňuje ukládat soubory jako soubory v operačním systému, ale pod odpovědností a kontrolou databázového serveru (serializace, transakce, spolehlivost, zabezpečení). ..). To mimo jiné umožňuje integrované a synchronní zálohování relačních a nerelačních dat, například pro obrázky produktů na webu, například elektronické příručky PDF pro stroje ve flotile pro údržbu. Tento nástroj se používá zejména pro EDM. Elektronické soubory, které mohou podléhat textové indexaci.
Kromě toho a od verze 2012 nabízí SQL Server koncept FileTable, což není nic jiného než virtuální tabulka spojená se vstupním bodem (adresářem) počítačového systému, aby bylo možné obousměrně spravovat elektronické soubory: soubory zpracovávané jazyk SQL je přístupný v souborovém systému Windows a naopak: do tabulky lze vložit soubor nebo adresář pomocí dotazu SQL, který se zobrazí ve stromové struktuře systému.
Nástroj Sharepoint pro správu znalostí masivně využívá tento koncept ke správě elektronických dokumentů, které jsou tam uloženy, a všech přechodných verzí.
Představený s verzí 2008, schopnost vytvářet nativní webové služby přímo na serveru pomocí koncových bodů SOAP / HTTP, byla považována za zastaralou ve verzi 2008 R2 a vyřazena ve verzi 2012. SQL Server vám však umožňuje vytvořit a interně používá mnoho koncových bodů pro konkrétní služby, jako je zrcadlení databáze nebo servisní makléř ...
Cílem Service Broker je poskytnout nástroj pro zasílání databázových zpráv pro asynchronní správu toků dat mezi servery SQL, serializaci a transakci prostřednictvím front, což jsou systémové tabulky. To umožňuje vytvářet SODA (Service Oriented Database Architecture), tj. Databáze různých instancí, které spolu komunikují na datové úrovni a již na aplikační úrovni, jako je tomu v případě SOA.
To umožňuje vytvářet distribuované, kolaborativní a distribuované databáze, „grid computing“ nebo dokonce WorkFlow a například poskytovat lepší útočnou plochu pro velmi konkurenční přístupy. Tento systém se liší od replikace dat tím, že informace jsou přenášeny hlavně ve formě XML (šifrované), na vrstvě HTTP (například Internet) pomocí webových služeb a že neexistuje žádná povinnost pro původní a cílové databáze a tabulky jsou strukturálně identické.
Zajímavým příkladem je nahrazení tradičních nástrojů pro zasílání zpráv, jako je řada MQ, takovým zařízením, mnohem spolehlivějším ...
Service Broker lze použít prostřednictvím bezplatného vydání SQL Server Express, používá se zejména v průmyslu ke správě výrobních informací mnoha strojů stejné flotily za účelem odesílání těchto dat na centrální server. To platí zejména pro řetězec výroby vakcín slavného francouzského institutu.
Kromě funkcí pro vývojáře představuje SQL Server mnoho nástrojů pro usnadnění správy. Zde je několik.
Nesmí být zaměňována s "vysokou dostupností", která spočívá v duplikování celé databáze, SQL Server má 8 režimů replikace dat (replikace určitých informací z určitých tabulek pocházejících z databází do jiných databází na jiných serverech), včetně transakčních, point-to-point režimy, snímek nebo sloučení. V edici Enterprise je také podporována replikace za do Oracle.
On-line prodej webové stránky, jako je Cdiscount , Fnac.com nebo Vente-privee.com použití replikace, jak oddělit data z FO (Front Office - v podstatě webová stránka data) a BO (Back Office - management) faktury, zásilky, skladem.. ..), ale také rozšířit útočnou plochu, aby absorbovala zátěž mnoha uživatelů.
Duplikace databází za účelem vytvoření vysoce odolného systému se provádí čtyřmi různými způsoby:
Je možné vytvářet obchodní pravidla a plánovat jejich fungování. Jedná se o ověření atributu fazety pomocí pravidla, které lze ověřit různými způsoby. Nějaké příklady:
Tento proces umožňuje vytvořit novou databázi z existující databáze, která představuje data v době, kdy byl spuštěn „snímek“. Tato kopie jen pro čtení se provádí okamžitě bez ohledu na objem počáteční databáze. To umožňuje například:
Rozdělení, které je od verze 2005 k dispozici v edici Enterprise, umožňuje rozdělit tabulky a indexy podle datového kritéria tabulky. opakovaně použitelné řešení je velmi jednoduché a je založeno na třech fázích:
Po dokončení těchto kroků lze funkci a schéma rozdělení znovu použít pro jiný objekt pro účely zarovnání oddílů, jako je tabulka faktur a její podřízený detail nebo tabulka řádků faktury.
Potom je možné spravovat oddíly (přesouvat, slučovat, rozdělit ...) horké pomocí funkcí ALTER PARTITION FUNCTION ... SPLIT RANGE / MERGE RANGE a ALTER TABLE ... SWITCH PARTITION ... příkazy, které okamžitě vykreslí ruku a jednat na nízké úrovni, v pozadí, ovládat pohyby.
Microsoft SQL Server poskytuje mnoho průvodců k provádění často nevděčných úkolů, jako je import / export dat nebo zálohování / obnovení. Pokud je to však užitečné pro začátečníky, je to nástroj pro správu plánu údržby, který několika kliknutími umožňuje provádět všechny úkoly nezbytné pro přežití a údržbu výkonu základny. Tento nástroj mimo jiné umožňuje opakované provádění následujících úkolů:
... a naplánovat jeho provedení.
Protože společné soužití všech uživatelů stejné základny může rychle představovat problémy, SQL Server integruje guvernéra prostředků, který umožňuje přidělit více či méně zdrojů (RAM, CPU, disky ...) konkrétní skupině uživatelů. Klasickým případem je směs uživatelů, kteří mají rádi řídicí panely a zprávy všeho druhu (například řadiče správy), kteří spotřebovávají velké množství dat, což penalizuje produkci dat od uživatelů provádějících zadávání jednotek ...
SQL Server integruje dva odlišné moduly pro správu kvalitních dat v databázích:
Database Mail je nástroj pro správu pošty na serveru SQL Server a je založen na Service Broker. Tento systém umožňuje definovat několik profilů odesílání pošty (například jeden pro aplikace a druhý pro správu) s možnou redundancí serverů SMTP. Odesílání e-mailů používá agent SQL zejména k upozornění na úspěch naplánovaných úkolů, ale často i na jejich selhání (například nelze provést zálohu). Procedura msdb.dbo.sp_send_dbmail se používá k odeslání e-mailu, včetně příloh, výsledku dotazu, obsahu v textu nebo obohacené formě ...
SQL Server je bohatý na nástroje pro auditování, ať už jde o zabezpečení, vývoj dat nebo výkon. Některé z nich popíšeme.
Kromě toho, že audit C2 je zastaralý a má být nahrazen běžnými kritérii (ISO 15408 ), nabízí SQL Server možnost sledování všeho, co souvisí se zabezpečením, prostřednictvím auditování databáze a všech možných akcí jak na úrovni serveru, tak na úrovni konkrétní databáze.
Tento systém je zdokonalen do té míry, že je možné automaticky zastavit server v případě selhání systému auditu, aby vetřelci nevyužili tento stav poruchy sledovatelnosti k provádění nezákonných manévrů!
SQL Server má dva režimy umožňující automatické sledování vývoje dat (INSERT, UPDATE, DELETE ...):
CHANGE TRACKING vynutí skenování tabulek v databázi, ale uleví celkovému objemu, zatímco CDC se nezeptá na produkční data, aby uvolnil zamykání.
Tyto dva moduly se obecně používají, buď jeden nebo druhý, k zásobování velkých datových skladů v diferenciálním režimu .
Množství nástroje je tak hojné, že je mnoho uživatelů ignoruje a hledá nástroje jiných dodavatelů - často placené - jinde, za to, co již mají, a zdarma na dosah ruky.
Zobrazení správy dat (DMV)Jedná se o systémová data představující statistiku spuštění modulu SQL, která lze použít v tabulkové podobě pseudo zobrazeními (ve skutečnosti většinu času vnitřní funkce vracející tabulkový stav dat shromážděných v paměti). To umožňuje stanovit různé diagnózy, například:
Na základě DMV zprávy využívají a syntetizují data. Jsou k dispozici na různých úrovních stromu Průzkumníka objektů SQL Server Management Studio, primárně na úrovni serveru (instance) a základní.
Počítadla výkonuSQL Server publikuje mnoho čítačů výkonu, které lze dotazovat přímo v SQL nebo které lze analyzovat pomocí monitoru výkonu (perfmon.exe). Tyto čítače jsou čitelné v zobrazení sys.dm_os_performance_counters.
UpozorněníSQL Server umožňuje nastavit upozornění na chyby nebo metriky překračující prahovou hodnotu prostřednictvím agenta SQL dotazem na data čítače výkonu nebo prostřednictvím WMI (Windows Management Instrumentation). Tento typ výstrahy umožňuje například být informován e-mailem o nasycení protokolů transakcí nebo vyplnění disků serveru.
Poradce při ladění databázového strojeTento nástroj se používá k provádění diagnostiky indexování, statistik, rozdělení oddílů nebo vytváření indexovaných pohledů, pokud je k dispozici dávka dotazů.
Profilování SQLProfiler SQL umožňuje čichat dotazy před a po provedení, aby poskytoval metriky pro účely analýzy primárně za účelem zlepšení výkonu (i když pro zobrazení zastaralého kódu z některých aplikací existuje režim „zastaralý“).
Tato data jsou uložena v tabulce nebo souboru (přenositelném do tabulky) a musí být poté analyzována. Různé šablony umožňují větší nebo menší úroveň jemnosti skenování.
Šablona „přehrání“ umožňuje zachytit zátěž a její metriky, které lze přehrát za stejných podmínek (simulace různých uživatelů současně) pro účely srovnávání, zejména pro změny ve verzích serveru SQL Server, jako v hardwaru. Chcete-li přehrát a porovnat, musíte použít balíček RML, který je zdarma k dispozici na webu společnosti Microsoft.
Rozšířené události (XE: eXtended Events)Jako doplněk a budoucí nahrazení profileru umožňuje XE hlubší vniknutí než profiler, protože dokáže skenovat téměř všechny metriky operací v paměti, v podprocesech nebo na diskových vstupech (systémová úroveň). To je navíc k tomu, co již profiler dělá.
Sběratel datProtože data DMV jsou v zásadě nestálá (existují pouze v paměti, jsou ztracena při každém restartu) nebo omezená (v paměťovém kruhu), bylo rozhodnuto vytvořit tento nástroj, který cyklicky zaznamenává různá data z různých zdrojů. (Většinou z DMV) pro účely zpětné vazby prostřednictvím konkrétních zpráv. Chcete-li to provést, musí být vytvořena databáze kolekce a musíte spustit různé předdefinované kolektory nebo vytvořit vlastní kolektory.
Distribuované přehráváníToto zařízení umožňuje přehrát aktivitu serveru zachycenou stopou SQL Profiler, simulací aktivity blízké realitě, prostřednictvím distribuce požadavků na různých pracovních stanicích, vše řízené řadičem. Cílem je například porovnat soulad výkonu aplikace s novou verzí serveru SQL Server nebo během změny stroje (zlepšení výkonu).
Microsoft SQL Server nabízí několik funkcí:
V případě dotazů používá SQL Server jazyk SQL v jednom z nejvíce dialektů vyhovujících SQL, což společnost Microsoft činí čestným bodem při opravě některých minulých chyb zděděných od motoru Sybase z verze na verzi. Používaným dialektem je T-SQL (Transact-SQL), implementační SQL, který podporuje uložené procedury, uživatelem definované funkce nebo UDF (User Defined Function) a triggery ( trigger ). Jazyky XQuery a XPath se používají na různých úrovních k manipulaci s daty XML v rámci dotazů SQL.
Pro datové přenosy používá SQL Server formát TDS (Tabular Data Stream), který byl implementován v jiných databázích (zejména v jeho protějšku Sybase ) a jehož specifikace jsou veřejné. Je k dispozici implementace open source klienta TDS a tvoří základ klienta SQL Server pro projekt Mono : FreeTDS .
SQL Server, který je vybaven dvěma databázovými stroji, jedním relačním a druhým rozhodovacím, je možné provádět dotazy v jazyce MDX nebo DMX specifické pro analýzu dat pro rozhodovací základny.
Jazyky R a Python byly integrovány od verze 2016. Je také možné vyvíjet rutiny SQL (UDF, procedury, triggery) pomocí jazyka .net, jako je VB pro .net nebo C #.
V relačním stroji SQL Server je možné definovat odkazy mezi tabulkami prostřednictvím deklarativních omezení, aby se silně zaručila integrita dat mezi referenční tabulkou a podřízenou tabulkou. Tyto odkazy integrity lze použít k úpravě nebo odstranění propojených řádků v řetězci a k podpoře evolučních pravidel typu ŽÁDNÁ AKCE, KASKÁDA, VÝCHOZÍ NASTAVENÍ a NASTAVENÍ NULL.
SQL Server je transakční DBMS . Je schopen připravit úpravy dat v databázi a atomicky je ověřit nebo zrušit, to znamená „vše nebo nic“. To zaručuje konzistenci a integritu informací uložených v databázi. Během transakce jsou datové sady obsahující řádky dat upravovaných touto transakcí uzamčeny. Ostatní uživatelé musí počkat na konec transakce, aby je mohli znovu upravit. Na druhou stranu mohou souběžní uživatelé volitelně číst data, i když byla uzamčena pro modifikaci jinou transakcí, v závislosti na zvolené úrovni izolace.
Úroveň izolace a zamykáníZámky se provádějí na úrovni řádků, stránek, rozšíření, tabulek nebo databází. SQL Server uzamkne pouze prostředky, které potřebuje (ve výchozím nastavení řádky), a podle potřeby může uzamknout na vyšší úrovni (oddíl nebo tabulka). To eliminuje potřebu, aby uživatelé čekali na konec transakce, aby aktualizovali řádky dat, která nebyla změnou ovlivněna, a pomáhá snížit množství spotřebovaných prostředků. Uzamykání může být pesimistické - souběžní uživatelé nebudou mít přístup k řádkům v této transakci - nebo optimistické - v takovém případě budou souběžní uživatelé mít přístup k nejnovější verzi řádků.
Aby to fungovalo, umožňuje vám SQL Server ovládat úroveň izolace šesti různými způsoby. 4 úrovně stanovené standardem SQL
... který je založen na pesimistickém zamykání a dvou „optimistických“ úrovních:
Protože úroveň izolace je dynamická, může se během stejné transakce změnit. Úroveň izolace READ COMMITTED SNAPSHOT funguje stejně jako Oracle nebo PostGreSQL přepsáním úrovně izolace READ COMMITTED SNAPSHOT s verzí řádků pro optimistické zamykání.
Protokolování transakcíSQL Server umožňuje hrát transakce třemi různými způsoby:
Na rozdíl od Oracle nebo PostGreSQL provádí SQL Server dokonce objednávky DDL (CREATE, ALTER, DROP ...) a DCL (GRANT, REVOKE ...).
Je možné definovat kontrolní body transakcí (příkaz SAVE TRANSACTION), aby bylo možné částečné zrušení (ROLLBACK ...).
Transakce se zaznamenávají do protokolu transakcí („REDO log“), úpravy dat jsou okamžitě k dispozici v paměti a budou zapsány do datových souborů během kontrolních bodů spouštěných pravidelně a asynchronně. Je však možné vynutit kontrolní bod pomocí instrukce CHECKPOINT.
Protokol transakcí zaznamenává data odlišně a dělá to třemi různými způsoby:
V režimech úplného a hromadného protokolu musí být protokol transakcí pravidelně ukládán („REDO protokol“), jinak bude růst neomezeně dlouho. A díky transakční záloze je možné obnovit databázi v jakémkoli okamžiku na nejbližší sekundu nebo na nejbližší transakci (s určitými omezeními pro režim hromadného žurnálování).
Je možné vnořit transakce, ale protože koncept transakce je stavem transakce, není možné tímto způsobem provádět částečná zrušení. Existují však i jiné způsoby, jak zachovat některá data z vrácení transakce, včetně prostřednictvím proměnných tabulky.
SQL Server podporuje distribuované transakce prostřednictvím koordinátora transakcí databáze (DTC), který implementuje "dvoufázové potvrzení" podle modelu XA.
Databáze jsou fyzicky obsaženy v souborech. Soubory mají obvykle příponu:
Soubory jsou rozděleny do 8196 bajtových bloků zvaných stránky a jsou uspořádány do sad 8 po sobě jdoucích stránek zvaných přípony. Do verze 2000 byly řádky omezeny na maximální velikost 8060 bajtů (sloupce typu LOBs (obrázek, text, ntext) se do tohoto limitu nezapočítávají). Od verze 2005 je možné tento limit výrazně překročit a dosáhnout až 2 miliard bajtů. Na druhou stranu je užitečná velikost stránky 8096 bajtů .
Databáze mohou fungovat, pouze pokud jsou k dispozici všechny soubory, ale čtení je možné během obnovy, a to prostřednictvím konceptu postupného obnovení.
Datové soubory jsou v databázi logicky seskupeny do skupin souborů, které tvoří cíl objektů databáze (tabulka, index atd.). Skupina souborů je považována za úložnou jednotku jakékoli tabulky nebo indexu a pokud skupina obsahuje několik souborů, pak SQL Server distribuuje data ve všech souborech (ekvivalent RAID 0), přičemž operace čtení a zápisu jsou prováděny paralelně v různých souborech, pod přímou kontrolou úložiště serveru SQL Server. Tyto soubory a skupiny souborů lze zálohovat nezávisle, i když existuje logická vzájemná závislost mezi objekty jednoho souboru a jiného (zejména referenční integrita).
Z důvodu svého vícebázového aspektu má SQL Server dvě úrovně zabezpečení: úroveň serveru prostřednictvím přihlašovacích účtů a základní úroveň prostřednictvím uživatelů SQL.
Počínaje verzí 2005 došlo v zásadách serveru SQL Server k významným změnám zabezpečení.
Strategie zabezpečení navíc zahrnuje také funkčnost serveru. Například uložená procedura xp_cmdshell pro spouštění systémových příkazů je zakázána a pouze DBA ji může znovu povolit . Podobně, jakmile se otevře server, všechny soubory všech databází jsou uzamčeny pro čtení a zápis, aby se zabránilo nežádoucímu přístupu.
Servisní účtySlužby běžící každou instanci serveru SQL Server používají účet služby (systémový účet pro spuštění služby Windows). Posledně jmenovaný musí být zvolen s opatrností, aby nedošlo k možnému narušení zabezpečení na serveru. Může to být: Systémová služba, Místní služba (ze systému Windows 2003), Síťová služba (ze systému Windows 2003), místní uživatelský účet systému Windows, uživatelský účet domény. Důrazně doporučujeme zamknout oprávnění k účtům služeb. V tomto smyslu a od verze 2012 se během instalace pro každou ze služeb serveru SQL (SQL Server, SQL Agent, SSAS, SSIS, SSRS atd.) Vytvářejí konkrétní účty s velmi omezeným oprávněním.
Přihlašovací účtyÚčet připojení se používá k připojení k instanci serveru SQL Server. U těchto účtů by měla být definována oprávnění platná na úrovni serveru. Minimální oprávnění je oprávnění „PŘIPOJIT“. Příkladem oprávnění na úrovni serveru je schopnost vytvořit libovolnou databázi. V tomto případě se jedná o oprávnění VYTVOŘIT JAKOUKOLI DATABÁZE.
SQL Server ve výchozím nastavení spoléhá na ověřovací systém Windows ( Kerberos nebo Native), který umožňuje přístup k instanci serveru SQL Server prostřednictvím skupiny systému Windows nebo uživatele systému Windows. Při připojování k databázi je uživatel identifikován svým přihlašovacím jménem Windows. Během fáze ověřování serveru proto nemusí zadávat své heslo.
Jelikož existují případy, kdy uživatele nelze identifikovat pomocí jeho přihlášení do Windows (použití GNU / Linuxu, webové stránky ...), lze implementovat metodu přímé identifikace na SQL Server. Musí to být výslovně provedeno správcem instance. To předpokládá vytvoření názvu účtu SQL a hesla a pro druhé lze modelovat zásadu konformace hesla v systému Windows.
Při přístupu k externímu prostředku se proces serveru SQL Server chová třemi různými způsoby: podle zosobnění, když je vrstva Windows správně nakonfigurována, může uživatel přistupovat k prostředkům pouze prostřednictvím serveru SQL Server, na který by měl nárok, kdyby měl přímý přístup; podle účtu služby instance, když je uživatel sysadmin a pro určité úkoly; ve všech ostatních případech neumožňuje přístup. V případě přihlašovacích účtů SQL a pro přístup k externímu prostředku (například odesílání faxu v uložené proceduře) přidává SQL Server možnost pro tento účel vytvářet přihlašovací údaje, které jsou registrovanými účty Windows. Uživatelé SQL proto mohou být přidruženi k těmto účtům Windows pro přístup k externím prostředkům.
Uživatel SQLPřihlašovací účet lze namapovat na uživatele SQL buď v konkrétní databázi, nebo v několika nebo všech. Název přihlašovacího účtu a uživatelské jméno se mohou lišit (a je lepší, že jsou). Uživateli SQL v databázi lze udělit oprávnění, která mu umožňují spouštět různé příkazy na různých objektech. Oprávnění lze zavést přímo na objekt databáze nebo na „kontejner“, jako je schéma SQL nebo celá databáze.
Příklad udělení různých oprávnění na úrovni schématu SQL uživateli s názvem USR_BANQUE:
GRANT SELECT, INSERT, UPDATE, EXECUTE ON SCHEMA::FINANCE TO USR_BANQUE; RoleSQL Server má předem stanovené role na úrovni serveru i na základní úrovni. Je dokonce možné vytvořit si vlastní role (nové pro úroveň serveru od roku 2012). Role, která je kolekcí oprávnění, která lze přiřadit účtu připojení na úrovni serveru nebo uživateli SQL, když byla tato role vytvořena pro konkrétní databázi.
Schéma SQLSchéma, které je kontejnerem objektů v databázi, vám SQL Server umožňuje definovat tolik schémat SQL, kolik chcete, aby bylo možné uspořádat různé objekty v databázi a zejména proaktivně spravovat zabezpečení na úrovni schématu. Vytváření nových objektů, pokud jsou tyto objekty umístěny do správných diagramů, tedy automatizuje implementaci zabezpečení dědičností. Neexistuje tedy žádný příkaz jakéhokoli druhu, který by byl předán z hlediska správy privilegií, aby bylo zabezpečení okamžitě použito.
Nakonec a na rozdíl od některých RDBMS (například Oracle) neexistuje žádné soukromí nebo záměna mezi schématem SQL a jeho vlastníkem (uživatelem, který jej vytvořil), což například výrazně usnadňuje migraci „objektu z jednoho diagramu do druhého a zaručuje lepší bezpečnost.
Příklad migrace tabulky z jednoho schématu SQL do jiného:
ALTER SCHEMA BANQUE TRANSFER dbo.T_CLIENT; ŠifrováníSQL Server umožňuje šifrování dat tabulky různými algoritmy zabudovanými do serveru SQL Server. Šifrovací klíče a certifikáty lze importovat z externího souboru nebo přímo vytvořit v databázi, přičemž SQL Server je jeho vlastní certifikační autorita. Existuje však třetí možnost, která spočívá v použití elektronické schránky pro generování a uchovávání klíčů zvaných HSM ( Hardware Security Module ), jejichž cílem je zaručit nedotknutelnost klíčů. Tato elektronická zařízení jsou umístěna do sítě a autodestrukce v případě pokusu o nelegální přístup, ať už fyzický nebo logický.
Záloha databáze obsahuje všechny klíče a certifikáty, které zajišťují šifrování a dešifrování. Obnova databáze na jiném serveru než na původním však vyžaduje dešifrování následované opětovným šifrováním. Prvky tvořící šifrovací architekturu jsou na sobě vzájemně závislé z tajného klíče drženého na úrovni instance. Aby bylo možné pokračovat v šifrování nebo dešifrování, je nutné klíč otevřít buď pomocí certifikátu, nebo zadáním hesla.
SQL Server umožňuje šifrování dat tabulky nebo šifrování kódu rutin.
Nakonec SQL Server umožňuje šifrování datového úložiště a již ne data prostřednictvím TDE (Transparent Data Encryption). Soubory (protokoly transakcí, data tabulky a indexy) jsou šifrovány při fyzickém zápisu na disky a dešifrovány při fyzickém čtení z disků do paměti. Data se tak zobrazují v paměti, což umožňuje udržovat výkon při šifrování celé databáze.
Verze 2016 přidala šifrování typu end-to-end, to znamená, že dešifrování řízené serverem lze provádět na úrovni aplikace a již v databázi.
Tabulky jsou objekty, které ve skutečnosti obsahují data v databázi. Jsou dvou typů:
Tabulka může obsahovat až 30 000 sloupců, jejichž součet velikostí nepřesahuje 2 miliardy bajtů . Sloupce typů BLOBů (VARCHAR (max), NVARCHAR (max), VARBINARY (max)) jsou uloženy mimo řádek.
Tabulky mohou mít primární klíč . Primární klíč je vždy indexován . Na úrovni tabulky jsou k dispozici také další omezení , například: jedinečná omezení (automaticky indexovaná), výchozí hodnoty, kontrolní omezení, cizí klíče .
Pohled je pojmenovaný dotaz na databázi. Dotazuje se stejným způsobem jako tabulka.
Data vrácená zobrazením jsou rekonstruována z dat obsažených v tabulkách pokaždé, když je zobrazení vyvoláno (kromě indexovaných zobrazení, která ukládají výsledky). SQL Server nahradí název pohledů v dotazu, který bude proveden s jejich definicemi, a výsledný dotaz je pak kompilován, optimalizován a spuštěn strojem. Zkompilovaný plán takto získaného dotazu se poté uloží, aby bylo možné jej znovu použít během dalšího hovoru. Vzhledem k tomu, že SQL Server má kromě statistické optimalizace sémantickou optimalizaci, jsou větve spojení, která nejsou nutná pro provoz pohledu, systematicky ořezána pro optimalizaci, pokud je to možné.
Za určitých podmínek je možné aktualizovat hodnoty v pohledu. Příklady těchto podmínek jsou:
SQL Server implementuje speciální typy pohledů, které jsou rozdělenými pohledy a indexovanými pohledy (ekvivalent synchronizovaných zhmotněných pohledů Oracle).
Indexování v SQL je poskytováno čtyřmi způsoby: relační indexování, vertikální indexování, textové indexování a indexování specifické pro určité typy objektů.
Relační indexováníTýká se to celého obsahu sloupců. Vnitřní mechanismus těchto indexů je založen na představě vyváženého stromu (B-Tree).
Existují dva typy indexů :
Na každou tabulku může existovat pouze jeden seskupený index, protože tento typ indexu je ve skutečnosti „druhem“ tabulky. Řádky tabulky jsou proto logicky seřazeny v pořadí seskupeného indexu, což vysvětluje, proč může existovat pouze jeden. Jinými slovy, klastrovaný index je b-strom , listy indexu jsou přímo řádky v tabulce.
Nonclustered index neodráží fyzické pořadí řádků v tabulce.
Oba typy indexu jsou vytvořeny z klíče , který se skládá z několika sloupců. Umožní vám rychle najít část dat ze všech nebo části sloupců tohoto klíče.
Pokud tedy vezmeme v úvahu klíč (A, B, C), můžeme provádět vyhledávání v polích (A), (A, B) a (A, B, C). Pole jsou považována v pořadí podle klíče; s tímto indexem proto není možné vyhledávat například (B, C) nebo (C). Na druhou stranu, hledání na (A, C) bude snadno těžit z indexování sloupce A.
Tabulka může obsahovat 999 indexů. Každý index může obsahovat 16 sloupců, jejichž součet velikostí nepřesahuje 900 bajtů . Rejstříky obsahují kromě dat sloupců indexu záložku k datům tabulky. Může to být buď ukazatel na řádek, nebo jeden z klíčů seskupeného indexu (anglicky: clusterized index ).
Optimalizátor serveru SQL vybere, který index se má použít. Nemusí to být pomocí indexu, který jste vytvořili, protože náklady na vyhledávání prostřednictvím tohoto indexu může být větší než číst celou tabulku. K provedení těchto voleb používá optimalizátor mimo jiné statistiku tabulky a přítomnost či nepřítomnost omezení. Je však možné vynutit, aby optimalizátor používal index s klauzulí WITH (index_name), ale tento postup se nedoporučuje.
Index je uspořádán do stromu-b . To umožňuje, aby byly informace klasifikovány rychleji, než kdyby byly vloženy do sekvenční tabulky. Protože toto uspořádání je velmi náročné na úložiště, umožňuje verze SQL Serveru z roku 2005 oddělit vyhledávací data a zpracovat data, která jsou integrována do indexu.
SQL Server umožňuje vytvářet vypočítané sloupce, které, pokud jsou trvalé (PERSISTED), lze indexovat.
Neexistuje žádná struktura indexů kromě b-stromu . Například neexistuje žádný bitmapový index , který by usnadňoval vyhledávání v polích s malým rozmanitým obsahem, ale k vytvoření simulace bitmapového indexu stačí vytvořit referenční tabulku. Stejně tak neexistuje žádný hash index. Ale stačí vytvořit vypočítaný hash sloupec (funkce CHECKSUM) a indexovat jej, aby se dosáhlo podobného efektu. Nakonec není možné vytvořit index ve výrazu, ale pouze vytvořit vypočítaný sloupec s takovým výrazem a indexovat jej, aby se dosáhlo stejného efektu.
Vertikální indexováníSQL Server umožňuje vytvářet takzvané "vertikální" indexy (index sloupců) na sadě sloupců, které umožňují přístup ke všem sloupcům indexovaným ve stejném plánu. Ve skutečnosti v relačním indexu s více sloupci umožňuje pořadí každého sloupce v klíči indexu pouze určité kombinace vyhledávání. To není případ vertikálního indexování, které umožňuje všechny kombinace vyhledávání. Například pomocí klíče (A, B, C) je možné vyhledávat jak na (A), (B) nebo (C), ale také na libovolnou kombinaci dvou nebo tří sloupců (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).
Ve verzi 2012 jsou tyto indexy pouze pro čtení, a proto jsou určeny hlavně pro databáze typu DataWarehouse pro Business Intelligence. Ve verzi 2014 lze tyto indexy upravit.
Textové a sémantické indexováníTextové indexování (ve skutečnosti indexovací katalog) umožňuje vyhledávání v prostém textu („fulltext“, v souladu se standardem SQL s predikátem CONTAINS) nebo způsobem Google pomocí predikátu FREETEXT. Je povoleno hledat různá slova ve stejném dokumentu (text sloupců tabulky nebo elektronického dokumentu uloženého v tabulce) podle rovnosti, začátku, blízkosti, ale také podle skloňované formy (konjugace, množné číslo, ženský rod atd.) , synonymizace, rozšíření (zejména pro akronymy) ... stejně jako s relativními váhami (tabulková funkce CONTAINSTABLE a FREETEXTTABLE).
Textové indexování se může vztahovat k řetězcům znaků nebo sloupcům typu XML, ale také k elektronickým souborům, ať už jsou uloženy přímo v tabulce (v BLOBU) nebo jako soubor prostřednictvím FILESTREAM nebo v FILETABLE. SQL Server nativně rozpoznává více než 50 formátů souborů a umožňuje vám přidávat mnoho dalších typů elektronických souborů pomocí „ifilter“.
SQL Server podporuje většinu jazyků a umožňuje vícejazyčné kombinované vyhledávání. K tomu lze pro každý indexovaný jazyk vytvořit seznam „černých slov“. Kromě toho SQL Server indexuje všechna slova bez výjimky, včetně černých slov, kde jsou některé RDBMS omezeny na slova s minimální délkou (například MySQL) nebo vylučují černá slova (například PostgreSQL). Nakonec, pokud případ není důležitý pro textové indexování, uživatel si může vybrat, zda chce textové indexování s přihlédnutím nebo ne s diakritickými znaky, jako jsou akcenty nebo ligatury. Indexování textu také umožňuje vyhledávat metadata v elektronických souborech, například autor souboru Word.
S verzí 2012 přidal SQL Server sémantické indexování, které, jak naznačuje jeho název, umožňuje provádět sémantické vyhledávání. Tato funkce vyžaduje přidání databáze sémantického zpracování určené ke stanovení statistik o indexovaných textech. sémantický výzkum se zaměřuje na význam dokumentů. To umožňuje automatickou extrakci značky, zjišťování souvisejícího obsahu a hierarchickou navigaci v dokumentech s obsahem podobným referenčnímu textu. Praktickým příkladem je dotaz na index podobnosti dokumentu k identifikaci v dávce životopisů, které se nejlépe shodují s popisem úlohy.
Indexování objektůSQL Server umožňuje indexování určitých datových typů objektů, například XML (čtyři typy indexů) nebo prostorové (typy geometrie a geografie ). Protože je možné přidat své vlastní objekty, je možné je indexovat za podmínky, že je popíšete ve formátu .NET, pod podmínkou, že v organizaci jejich úložiště uspořádáte „ bajtové pořadí“.
Je možné definovat uložené procedury kódované v Transact-SQL i v .NET (SQL CLR). Uložená procedura je řada pokynů, které mohou upravit data databáze a zapouzdřit transakce a které vracejí jednu nebo více hodnot.
Procedury uložené na serveru SQL Server lze brát jako parametry a / nebo vrátit celá čísla, řetězce znaků, data, kurzory, tabulky, virtuální tabulky a jakýkoli jiný typ definovaný na serveru SQL Server ve výchozím nastavení nebo uživateli.
Hlavní výhody používání uložených procedur jsou:
Spouštěčem je uložený kód, který se provede po (AFTER) nebo namísto (INSTEAD OF) konkrétní akce (vložení, úpravy, odstranění) v tabulce nebo pohledu. Na jednu akci (VLOŽIT, AKTUALIZOVAT nebo ODSTRANIT) stejné tabulky nebo pohledu je možné kódovat tolik PO SPUŠTĚNÍ, kolik chcete. V případě většího počtu spouštěčů na stejnou akci stejné tabulky je pořadí spouštěčů libovolné, s výjimkou prvních 3, které lze uložit. INSTEAD OF triggery musí být pro každou událost / stůl jedinečné.
Pro zpracování vložených, upravených nebo odstraněných dat jsou vytvořeny dvě virtuální tabulky: vložené (pro vložení a úpravu) a odstraněné (pro odstranění a úpravu). Obsah těchto virtuálních tabulek není možné upravit. Naproti tomu SQL Server umožňuje upravit cílovou tabulku spouštěče, jako je vrácení zpět implicitní transakce, která vyvolala spouštěč vrácením zpět transakce (ROLLBACK).
Konkrétní spoušť INSTEAD OF lze použít, když si přejete zachytit událost, nikoli nechat ji proběhnout, ale ke kódování jiné akce. Tento typ spouštěče lze použít například v kontextu relačního / objektového mapování, kde manipulujeme s pohledy složenými z více spojení, kde chceme, aby uživatel mohl provádět aktualizace (INSERT, UPDATE, DELETE) přímo v těchto pohledech. V takovém případě jsou data INSERT, UPDATE nebo DELETE rozdělena pro každou ze stolů ve hře a prostřednictvím transakce je spuštěna řada příkazů specifických pro každou zobrazovanou tabulku.
Od verze SQL Server 2005 byla přidána možnost vytvářet spouštěče DDL. Tyto spouštěče DDL působí po výskytu událostí typu CREATE, ALTER nebo DROP a tyto události lze zachytit na úrovni serveru (například CREATE DATABASE) nebo na úrovni databáze (například DROP TABLE). K získání podrobností o zachycené události poskytuje datový paket XML (získaný funkcí EVENTDATA ()) více podrobností o původu a povaze události. Existuje dokonce i dotaz SQL, který jej spustil.
K zachycení připojení k serveru se používá určitý typ spouštěče (FOR LOGON trigger).
Od SQL Server 2000 je možné vytvářet funkce v Transact SQL a od roku 2005 v .net (SQL CLR).
Tyto funkce jsou 3 typů:
Existují však omezení týkající se funkcí, které lze použít v těle funkce. Nelze použít nedeterministické funkce a funkce nesmí trvale nebo trvale měnit data ani parametry systému. To zakazuje například použití INSERT na stole nebo použití funkce GETDATE ().
Přidán SQL Server 2005:
Na rozdíl od uložené procedury nemůže funkce obsahovat:
To dává smysl, protože účelem funkce je především použití v rámci dotazu.
Funkce vložené tabulky fungující jako parametrizovaná zobrazení mohou aktualizovat podkladové tabulky.
Od verze 2005 obsahuje SQL Server aspekty objektu, včetně:
Tento nástroj je součástí placených verzí serveru SQL Server. Umožňuje vám připojit a spravovat různé stroje SQL Server (SSRS, SSIS, SSAS a relační stroj). Umožňuje relačnímu enginu vyvíjet skripty TSQL s možností seskupení všech v rámci řešení (jako v Visual Studio). Tyto lze také uložit pomocí Visual SourceSafe nebo Team Foundation Server. U verze Express (zdarma) je zdarma k dispozici zjednodušený nástroj SQL Server Management Studio Express Edition (SSMSE).
Před rokem 2005 byl tento nástroj rozdělen na dva moduly nazvané „Enterprise Manager“ a „Query Analyzer“.
Stejně jako SSMS je tento nástroj dodáván s placenými verzemi serveru SQL Server. Jedná se o překrytí obecného vývojového nástroje Microsoft Visual Studio vhodného pro vytváření projektů BI (Analysis Services, Integration Services nebo Reporting Services). Všechny tyto projekty najdete ve skupině „Business Intelligence Projects“.
Tento nástroj umožňuje zachytit aktivitu databáze. Umožňuje správcům kontrolovat časově náročné položky a dotazy v databázi. Volitelně je možné přehrát záznam na testovacím serveru. Má tendenci být postupně nahrazován systémem „rozšířených událostí“ (rozšířené události).
MS SQL Server je ve skutečnosti sada složená z pěti hlavních služeb:
Pro určité potřeby jsou s ním spojeny další služby:
SQL Server také obsahuje mnoho vývojových nástrojů:
K dispozici je více než sto periferních nástrojů, a to buď během instalace (SQL Profiler, Poradce při ladění databáze, Data Collector atd.), Nebo přímo na webu společnosti Microsoft (SQLdiag, SQLioSim, SQL Server Best Practices Analyzer ...), nebo prostřednictvím komunitní web opensource Codeplex (RML Utilities, PAL, Open DBDiff ...).
Instance serveru SQL Server je instalace některých nebo všech služeb serveru SQL Server na počítači se systémem Windows a může hostovat mnoho databází. Stejný OS podporující až 50 různých instancí (což se ve výrobě nedoporučuje).
SQL Server 2014 není omezen počtem jader nebo RAM, pouze kapacitou systému Windows. Databáze je omezena na 524 peta bajtů (Po), ale protože SQL Server může hostovat více databází a 32760 bází ve stejné instanci, celková kapacita systému může teoreticky zpracovat 17166240 Po dat. S 50 instancemi na stejném stroji je tento teoretický limit posunut zpět na 858 312 000 Po ...
SQL Server existuje v různých edicích: CE (Compact Edition - integrované řešení pro smartphony), Express (několik verzí - zdarma), Web (v režimu SPLA: Licenční smlouva s poskytovatelem služeb - s webovými hostiteli), Standard, BI a Enterprise - to pro Výroba. Vydání Developper (ekvivalent vydání Enterprise) je určeno pro vývoj.
Toto je databázový stroj. Každá instance serveru SQL Server má odpovídající službu Windows Sql Server. Tuto službu najdete ve službách Windows pod názvy MSSQL $ Instance_name pro pojmenované instance a MSSQLServer pro výchozí instanci.
Každá vytvořená instance má zpočátku 4 až 6 systémových databází. Stroj SQL Server spoléhá na hlavní systémovou databázi, která obsahuje definici ostatních databází.
Ostatní systémové základy jsou:
Toto je agent údržby pro instanci serveru SQL Server. Každá instance serveru SQL Server má odpovídající službu Windows Sql Server Agent. Tuto službu najdete ve službách Windows pod názvy SQLAgent $ InstanceName pro pojmenované instance a SQLAgent pro výchozí instanci. Stroj SQL Server Agent je založen na databázi msdb . Tento modul se používá ke správě záloh, plánů údržby, plánované práce, monitorování databáze, výstrah pro správu ...
Agent má také úlohu monitorovat službu SQL Server a automaticky ji spustit, aby se restartovala v případě neočekávaného vypnutí.
Fulltextový index / vyhledávač.
Také známý jako MS DTC, se používá ke správě distribuovaných transakcí. To znamená transakce mezi několika transakčními servery SQL Server, mezi SQL Serverem a jinými databázovými servery, mezi několika různými zdroji dat, ať už se jedná o databázové stroje nebo jednoduché komponenty.
Služba, která se objevila na serveru SQL Server 2000, umožňuje pravidelně dotazovat databázi a v závislosti na těchto požadavcích upozorňovat skupiny přihlášené k odběru těchto událostí. Tato služba již není poskytována standardně od serveru SQL Server 2008. SQL Server s kódovým označením Denali přesto přináší podobné funkce ve službách SQL Server Reporting Services a Sharepoint 2010, známé jako Alerting.
Platforma Business Intelligence SQL Server se skládá z ETL , které se objevilo u SQL 7, vícerozměrného enginu, také u SQL 7, a z reportovacího enginu, přidaného v roce 2004 pod SQL 2000. S verzí SQL Server 2005, vývojovým studiem Business Intelligence byla integrována do Visual Studio 2005: BI Development Studio.
SQL Server 2008 podporuje nový typ primitivních dat: geografický typ, kde dochází k projekci (zeměpisné šířky a délky) a geometrický typ bez projekce pro manipulaci s daty souvisejícími s body, úsečkami a mnohoúhelníky. První software podporující SQL Server je software Manifold System (en) a MapInfo, GeoMedia.
Služba, která se objevila na serveru SQL Server 2005, je náhradou za Data Transformation Services (DTS). ETL byl kompletně přestavěn a soutěží s ostatními profesionálními ETL nástrojů na trhu.
Cílem je integrace společnosti prostřednictvím jejích dat. SQL Server Integration Services (SSIS) je komplexní platforma pro integraci dat. SSIS není jednoduchý ETL. Jedná se o kompletní platformu pro integraci dat, která nabízí řadu grafických nástrojů pro vývoj a správu, služeb, programovatelných objektů a API (Application Programming Interfaces). SSIS obsahuje modul pracovního toku, který podporuje složitou logiku a lze jej použít pro širokou škálu operací údržby databáze a sofistikovaných operací přenosu dat. Architektura SSIS je v zásadě složena ze dvou částí: běhový modul pro transformaci dat, který spravuje tok řízení balíčku, a stroj pro tok dat nebo stroj pro transformaci dat, který řídí tok dat ze zdrojů dat, prostřednictvím transformací, a na cílové cíle.
SQL Server Analysis Services (SSAS) je služba, která se objevila na serveru SQL Server 7, v té době známý jako OLAP Services. Umožňuje vám generovat OLAP kostky , agregovaná a vícerozměrná data. Umožňuje také implementovat algoritmy dolování dat .
Tato služba, která se objevila na serveru SQL Server 2000, je generátor sestav. Sestavují ji dvě webové služby, jedna umožňuje její správu, druhá generaci, předplatné a vykreslování sestav. Vykreslování se provádí v aplikacích Excel, PDF, HTML a Word (od verze 2008).
Objeví se s SQL Server 2008 R2 a bude podporovat až 256 logických procesorů, stejně jako neomezenou virtualizaci a neomezené množství paměti.
Podporuje neomezený počet procesorů a velikost paměti RAM (omezeno operačním systémem). K dispozici je 32bitová verze (x86) a 2 64bitové verze (ia64 a x64, x64 pouze pro SQL Server 2005) a nemá žádné omezení velikosti databází. Lze jej nainstalovat pouze na verzi serveru Windows . Zahrnuje všechny funkce motoru, včetně funkcí vysoké dostupnosti. Funkce pro business intelligence jsou zahrnuty od generování sestav pomocí Reporting Services přes použití kostek OLAP s Analysis Services po přenos dat pomocí Integration Services (SQL Server 2005) nebo Data Transformation Services (SQL Server 7) a 2000) . Může také pracovat v klastru až 8 uzlů.
Toto je edice pro vývojáře, která má stejné funkce jako edice Enterprise. Licence však obsahuje omezení jejího používání. Licence zakazuje provoz ve výrobě. Je určen výhradně pro zkušební použití. Dostupné produkty však nejsou nijak omezeny.
Podporuje až 4 procesory a neomezenou velikost paměti RAM (omezeno operačním systémem). K dispozici je 32bitová verze (x86) a 2 64bitové verze (ia64 a x64, obě pouze pro SQL Server 2005) a nemá žádné omezení velikosti databází. SQL Server 2005 však umožňuje jeho instalaci na stolní Windows . Zahrnuje všechny funkce motoru kromě některých funkcí vysoké dostupnosti. Funkce pro business intelligence jsou zahrnuty od generování sestav pomocí Reporting Services (pro SQL Server 2000 musí být tato součást načtena samostatně) až po použití kostek OLAP se službou Analysis Services, včetně přenosu dat pomocí Integration Services (SQL Server 2005) nebo Data Transformation Services (SQL Server 7 a 2000). Od verze 2005 může také pracovat v klastru až 2 uzlů.
Nové vydání se objevilo na serveru SQL Server 2005. Podporuje až 2 procesory a 3 GB paměti RAM. V tuto chvíli je k dispozici pouze ve 32bitové verzi a nemá žádné omezení velikosti databází. Zahrnuje většinu funkcí enginu, včetně možnosti podílet se na replikaci jako editor. Zahrnutá funkce business intelligence je omezena na vytváření sestav pomocí Reporting Services. Toto vydání zmizí s verzí SQL Server 2012.
Nové vydání se objevilo na serveru SQL Server 2008. Pokud jde o funkčnost standardního vydání, nepodporuje však zrcadlení ani rozhodovací komponenty serveru SQL Server. Jeho licence umožňuje pouze jeho použití jako databázového serveru pro web nebo službu. Je k dispozici jako měsíční předplatné, zejména pro hostitele, kromě toho, že je k dispozici běžněji k nákupu.
Stávající Edition s SQL Server 7 a SQL Server 2000. To podporuje až dva procesory a 2 GB of RAM . K dispozici pouze v 32bitové verzi a nemá žádné omezení velikosti databází. Zahrnuje většinu funkcí modulu, včetně možnosti účastnit se replikace jako předplatitel. Nemá funkce pro business intelligence. Pokud jde o licencování, k použití tohoto vydání stačí mít licenci SQL Server Client Access License (CAL).
Podobně jako u SQL Server Edition Express, s odstraněnými omezeními paměti, počtu procesorů a velikosti databáze, lze jej však použít pouze lokálně a může hostovat pouze databáze aplikací Microsoft. Využívají jej produkty jako Sharepoint nebo některé funkce Windows Active Directory.
Společnost Microsoft vydala bezplatné vydání sestávající pouze z relačního databázového stroje s omezením na 4 GB místa na disku (10 GB ve verzi 2008 R2). Lze jej však použít k vytvoření až 32 760 různých databází, tj. Více než 320 TB dat z verze 2008 R2.
Dříve nazvané: Pocket PC / Mobile / Everywhere Edition. Toto je odlehčená edice vhodná pro použití na PDA nebo smartphonech vybavených Windows Mobile . Verze Compact (verze 3.5), která je nástupcem mobilních verzí, je otevřena klasickým pracovním stanicím se systémem Windows . Toto vydání se může účastnit replikace jako předplatitel.
SQL Server podporuje 5 licenčních systémů:
Typy licencí, které lze zvážit pro použití serveru SQL Server za webovým front-endem, jsou licence na procesor nebo jádro nebo režim SPLA omezený na webovou edici.
Za zmínku stojí některé nástroje související se serverem SQL ...
Řešení společnosti Microsoft pro integraci dat EAI (Enterprise Application Integration) a B2B (business-to-business).
Globální řešení pro správu obchodních znalostí (KB - Knowledge base) umožňující správu obsahu (prostřednictvím webových stránek a fóra) a sdílených elektronických dokumentů, získávání informací a také možnost vytváření formulářů a prezentaci statistik rozhodování, jako jsou řídicí panely, klíčové ukazatele ( KPI - Key Performance Indicator) ...
Toto je Microsoft ERP (Enterprise Resource Planning).
Je softwarová kovárna umožňující správu zdrojového kódu, sestavení, monitorování zdrojů, plánování úkolů ...
Systém pro centralizovanou správu, dohled a údržbu IT systému (servery, počítače, periferní zařízení online) a síťové infrastruktury.
Distribuční služba pro Microsoft OS a aplikace pro aktualizaci různých strojů Windows v počítačovém parku (používá bezplatnou verzi Express)
StreamInsight je platforma určená k vývoji a nasazení na rozsáhlé aplikace pro zpracování složitých událostí (CEP). Je založen na dvou základních komponentách: StreamInsight Server pro správu datových toků a StreamInsight Framework pro vytváření rozhraní.
EDF používá StreamInsight pro správu incidentů u všech svých IT zařízení.
Společnost Microsoft, která se tomuto hnutí velmi věnuje, zejména prostřednictvím Hadoop, nabízí různá řešení pro správu velkých dat.
HDInsight (Hadoop)HDInsight je řešení Hadoop nabízené v cloudu Azure nebo místně (pro účely vývoje).
Jazykové nástroje Map / Reduce, Hive, Sqoop a Pig usnadňují přenos a manipulaci s daty ze serveru SQL Server na Hadoop. Sada SDK založená na rozhraní .NET vám umožňuje psát dávky pomocí sady Visual Studio. Místní instalace Hadoop určená pro vývojáře je k dispozici prostřednictvím serveru HDInsight.
PolybasePolybase je nástroj určený k útoku na různé zdroje relačních (SQL Server), rozhodovacích (SQL Server Parallel Data Warehouse - PDW) nebo velkých dat, prostřednictvím různých procesů, jako je Map Reduce nebo MPP (Massive Parallel Processive)