Category Archives: MS SQL Server

Datový skladMS SQL Server je software vyvinutý společností Microsoft, který obsahuje databázový engine a řadu features, které pomáhají databáze vyvíjet, udržovat a efektivně používat. Mezi takové featury patří SQL Server Integration services, SQL Server Reporting Services, SQL Server Analysis Services a další funkce jako například Master data management… Mapa článků v rubrice dle abecedy »

Instalace SQL Server 2016 – Plánování, HW a SW požadavky

Instalace SQL Server s sebou přináší mnoho práce ještě před tím než reálně začne IT specialista něco instalovat. Dříve než začneme řešit SW a HW požadavky, je potřeba promyslet jednu věc a to jakou edici SQL server vlastně budeme potřebovat v závislosti na tom jaké funkce SQL server budeme používat. Od toho se pak odvíjí… Read More »

SQL Server edice a verze – Jak jednoduše zjistit verzi a edici SQL Server

Způsobů jak zjistit verzi, na které běží SQL Server instance vč. edice je více. Jedním ze způsobů je zobrazit si vlastnosti (properities) nad SQL Server instancí. Tam uvidíme identifikátor verze. Jak z čísla poznat verzi SQL Serveru? Moje verze SQL serveru viz screenshot je 14.0.2002.14. Důležité je první předčíslí, které udává verzi, která je v… Read More »

SQL Jak poslat email přes SQL Script (sp_send_dbmail) – Database mail (Díl 5.)

Tento díl o mailování ze SQL Serveru bude asi poslední, už mi docházejí nápady 🙂 Poslat email SQL scriptem můžete přes systémovou proceduru “sp_send_dbmail”. Před tím je ale potřeba něco ponastavovat. Jak poslat email přes SQL Script – procedura sp_send_dbmail (1) Především musíte mít nastaven database mail – nastavit email profil můžete podle článku z prvního… Read More »

SQL Alerts a notifikace nad SQL Serverem -Database mail (Díl 4.)

Jako správci SQL Serveru bychom měli vědět, co se na serveru během dne děje a jestli tam nedochází k nějakým nežádoucím incidentům. K tomu se dají využít Alerts (upozornění). Pokud se vyskytne nějaká událost, kterou hlídá definovaný alert, tak dojde k odeslání notifikace přes email operátorovi, který může stav napravit nebo ho vezme na vědomí.… Read More »

SQL Emaily v Reporting services přes Subscription – Database mail (Díl 3.)

Reporting services jsou featura, kterou můžete využívat již od Express edice a je to sada služeb pomocí které můžete vytvářet a publikovat reporty. O Reporting services jsem napsal seriál článků (první díl zde). Uživatelé reportů si je můžou prohlížet na URL v interní síti (Report manager neboli Web portál), kterou si definujete při instalaci –… Read More »

SQL Vytvoření emailové notifikace – Database mail (Díl 2.)

Minulé 2 články které předcházely jsem věnoval nastavení database mailu a nastavení change trackingu (CDC) neboli automatického sledování změn nad tabulkou. Tak mě napadá proč tyto témata nespojit – popíšu, jak pomocí automatického emailu odreportovat změny nad určitou tabulkou. to se může hodit ne? 🙂 Připomínám, že tato funkce je dostupná v edici Standard a vyšší.… Read More »

SQL Nastavení emailování z gmailu – Database mail (Díl 1.)

Funkce database mail je dostupná pouze v edici SQL Server Standard a vyšší. V edici SQL Server Express se s ním bohužel nesetkáme. Tato funkce je užitečná především pokud chcete posílat různé zprávy ze SQL Serveru na Váš email. Typicky jde o různé kontroly a notifikace a upozornění. V neposlední řadě je tato funkce využitelná při… Read More »

SQL Change data capture (CDC) – Tracking změn nad tabulkou

V aplikacích nebo komplikovaných podnikových informačních architekturách často potřebujeme z různých důvodů řešit historizaci záznamů a trackování změn hodnot. Většinou to bývá zejména z bezpečnostních důvodů => potřebujeme sledovat kdo a co mění, případně být schopni opravit chybu třeba ze strany uživatele nebo db admina. Dalším dobrým důvodem pro nasazení CDC je třeba to, že… Read More »

Jak vygenerovat skript pro všechny objekty (tabulky, views, procedury, funkce) v databázi?

Důvodů proč bychom mohli potřebovat vytvořit definici všech SQL objektů v určité databázi může být hromada – zálohování, source controll nebo nasazení databáze v jiném prostředí (na jiné SQL instanci). Je to celkem triviální, SQL Server má pro tyto účely integrován jednoduchý nástroj. Jak vygenerovat skripty pro tabulky, views, procedury, funkce v databázi? (1) Klikneme pravým… Read More »

Fakta a dimenze – Tabulky v datovém skladu

Datový sklad je centrální informační systém, který slouží k uchování dat z jednoho nebo více podnikových operačních systémů, případně dalších externích zdrojů (excel, sharepoint, apod). Data jsou v datovém skladu organizována do schémat a před uložením projdou procesem čištění a úpravou struktury dat tak, aby byla pro uživatele srozumitelná a dale se jednoduše reportovat. Narozdíl… Read More »

SQL Vytvoření databáze (CREATE DATABASE) + skript

Databáze je systém souborů a objektů, které jsou v rámci databáze uspořádány a provázány prostřednictvím klíčů. V databázi SQL Server můžeme najít objekty jako – tabulky, pohledy (views), funkce, procedury, triggery a další. V zásadě máme 2 možnosti jak databázi vytvořit. První možnost je vytvoření databáze naklikat v SQL management studio nebo databázi založit pomocí… Read More »

SQL Parallelism, paralelní zpracování dat – 2 a více procedur současně?

Spuštění více než 1 procedury v 1 čas nemusí být tak jednoduchá úloha jak se zdá, zejména pokud jednotlivé procedury mají mezi sebou závislosti – tzn nějaká sada procedur podmiňuje spuštění jiných procedur. Jak tedy udělat paralelismus (Parallelism)? Když si zrekapitulujeme možnosti které se nám nabízejí: Parallelism procedur v jedné session v SQL skriptu –… Read More »

Optimalizace a zrychlení SQL dotazů – 10 tipů s ukázkou

Optimalizace sql dotazů je věčný boj, který začíná už při návrhu architektury databáze a škálování prostředků serveru. Při správném návrhu architektury se můžeme vyvarovat spoustě výkonových problému v budoucnu. V neposlední řadě výkon skriptů můžeme ovlivnit strukturou SQL dotazů a správně nastavenými indexy. Článek rozdělím na 2 hlavnní části: Jak optimalizovat pomocí SQL Architektury Jak… Read More »

SQL Počet řádků a velikost tabulek v databázi + skript

Jednou za čas je potřeba se podívat na to, jak vypadají DB objekty v databázi s ohledem na velikost tabulek (počet řádků a storage). Jak zkontrolovat velikost tabulek v SQL databázi Pokud objektů v databázi není mnoho, tak můžeme kontrolu provést přímo ve vlastnostech jednotlivých tabulek v poli Data space a index space. Velikost tabulky… Read More »

SQL Error hlášky a závažnost (severity) – sys.messages + Popis

V SQL Server existuje systémová tabulka, ve které jsou uloženy všechny možné Error stavy a jejich závažnost = severity. Error severity nabývá hodnot 0-25 a definuje závažnost chyby. Všechny zprávy se kterými se můžeme v SQL Server setkat jsou uloženy v tabulce sys.messages. USE MASTER SELECT * FROM SYS.MESSAGES WHERE language_id = 1033 Tabulka obsahuje… Read More »

SQL Hierarchie Díl 3 – Jak na hierarchie v SSRS – Reporting services

V seriálu o hierarchiích pokračujeme dalším článkem. Minule jsem ukazoval Jak správně vytvořit hierarchii v databázi a Jak se dá rekurzivním dotazem dotazovat na hierarchii v SQL. Dnes zabrousíme do Reporting Services, které mají integrovanou podporu pro hierarchie v SSRS nativně. Nemusíte tak data před reportováním nijak transformovat a vše funguje “na tlačítko”. Jak reportovat… Read More »

SQL Hierarchie Díl 1 – jak správně vytvořit parent-child strukturu v tabulce?

Někdy potřebujeme v SQL vytvořit tabulku, která obsahuje hierarchii. Hierarchie je struktura (někdy se označuje jako parent-child hierarchie), která obsahuje závislosti mezi jednotlivými členy. Můžeme si to představit jako organizaci ve firmě. Firma má zaměstnance a ti mají svého nadřízeného. Nadřízení zaměstnanci mají opět svého nadřízeného a takto můžeme pokračovat až k CEO firmy, který… Read More »

SQL Automatická oprava indexů v SQL Server + skript

V minulém článku (viz. Fragmentace indexů) jsem popisoval, jak zjistit fragmentaci indexů přes skript využívající systémové tabulky. Podle doporučení Microsoftu bychom měli indexy s fragmentací mezi 5 – 30 % reorganizovat (REORGANIZE) a indexy nad 30 % rebuildovat (REBUILD). Využijeme zde skript z minulého článku a vytvoříme automatický skript. Oprava indexů provedená tímto způsobem je… Read More »

SQL Fragmentace indexů – ukázka + sql skripty

Indexy jsou základním pilířem optimalizace SQL dotazů z databáze. Pomocí nich můžeme výrazně zrychlovat operace typu čtení. Bohužel se nám v čase indexy kazí – fragmentují a uspořádání indexů se zhoršuje. Fragmentace indexu je dána tím, že do tabulky se postupně vkládají nebo mažou záznamy a indexy se poté už neoptimalizují. To znamená že jednotlivé… Read More »

SQL # Tempová tabulka – Rozdíl mezi # a ## temp tabulkou

Tempová tabulka s hashtagem # nebo ## je dočasná tabulka, která je uložena v systémové databázi tempdb. Tabulka existuje pouze po dobu, po kterou je otevřena user session ID. Rozeznáváme 2 typy tempových tabulek: Lokální # tempová tabulka – je přístupná pouze v rámci dané session, tzn vidí ji pouze uživatel vykonávající skript Globální ## tempová… Read More »