Archiív rubriky: Užitečné SQL skripty

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… Čtěte více »

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šší.… Čtěte více »

SQL Cursor – Ukázka jak funguje SQL kurzor

Nedávno mi psal do komentáře David, že by jej potěšil článek o kurzorech (Chybí vám tu nějaký článek? Napiště si o něj). Mám teď volněji, tak se tu pokusím tady něco uvařit. Každopádně, kurzory jsou obecně velmi slow operace a používal bych je jako možnost poslední instance. Často jde úloha řešit bez kurzoru (rekurzivním dotazem,… Čtěte více »

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í… Čtěte více »

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… Čtěte více »

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… Čtěte více »

SQL Hierarchie Díl 2 – Rekurzivní dotaz do parent-child hierarchie

V minulém článku jsem popisoval, jak správně založit do sql tabulky hierarchii se zaměstnanci (viz. článek Jak správně vytvořit parent-child strukturu). Nyní bude řeč o tom, jak se do hierarchií dotazovat a jak s nimi pracovat. Můžete na to jít bláznivými skripty nebo od lesa. Způsob od lesa zahrnuje rekurzivní dotaz. Rekurzivní dotaz na hierarchie… Čtěte více »

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… Čtěte více »

SQL OPENJSON funkce – Jak parsovat JSON soubory?

Jedna z novinek, která přišla v nedávných SQL Server verzích je nativní podpora pro JSON formáty. Tato novinka přišla s SQL verzí 2016 (psal jsem o tom v tomto článku). JSON soubor je strukturovaný zápis dat pomocí jednoduché notace (podobně jako např. XML). Podívejme se blíže na novou funkci – OPENJSON. Příklad na SQL funkci… Čtěte více »

BCP utilita – rychlý bulk import a export v SQL Server

BCP je utilita, která je defaultně nainstalována s edicemi SQL Server a slouží k hromadnému importu nebo exportu velkého objemu dat v uživatelsky definovaném formátu. Tato utilita je optimalizována pro velké přesuny dat buďto mezi instancemi SQL serveru nebo mezi SQL instancí a nějakým textovým souborem. Utilita se používá jak pro jednorázový import/export dat, tak… Čtěte více »

xp_cmdshell – Jak zapnout cmdshell v SQL Server?

xp_cmdshell je opravdu velmi silná procedura, která umožňuje spouštět příkazy přes příkazovou řádku (cmd). Pomocí cmdshell můžete přes SQL platformu realizovat jakoukoliv operaci nad Windows serverem – např. kopírování souborů, vytváření, mazání, apod. Z ale toho ale plynou také velká bezpečnostní rizika. Proto je také procedura defaultně vypnutá a nedoporučuje se její trvalé zapnut z… Čtěte více »

SQL Server Agent pro SQL Express + návod

SQL Server agent je nástroj integrovaný do SQL Serveru, jehož hlavním účelem je automatické plánování a spouštění úloh. Prostřednictvím SQL Agenta si můžeme založit tzv. Job a v rámci Jobu naplánovat jednotlivé úlohy – třeba spuštění skriptu, SSIS package, powershellu a mnoho dalšího. SQL Server agent je ale bohužel dostupný až od edice Standard a… Čtěte více »

SQL SQLCMD (Server command line) – SQL přes cmd

V tomto krátkém článku představím možnost, jak lze spustit sql skript mimo SQL management studio nebo jiný SW nástroj. Použijeme utilitu SQL server command line, zkráceně sqlcmd. Tato utilita umožňuje pracovat se SQL serverem prostřednictvím příkazové řádky. Využití je zřejmé a to třeba práce s SQL z různých aplikací. Já si tímto příspěvkem připravuju půdu… Čtěte více »

Základní SQL dotazy – Přehled selectů pro začátečníky

Dnes tu mám článek určený pro změnu začátečníkům. Bude plný příkladů sql dotazů s tím, že si to dáme od těch nejzákladnějších a postupně budeme přitvrzovat. SQL dotazy budou seřazeny chronologicky podle obtížnosti. Postupně budu přidávat další. Pro IT oddělení je dnes znalost SQL už nutnost, ale nastala doba, kdy SQL dotazování používají nejen ajťáci,… Čtěte více »

SQL OFFSET funkce – LAG, LEAD, FIRST_VALUE, LAST_VALUE

OFFSET funkce jsou v MS SQL Server relativně nové, jsou dostupné teprve od verze SQL Server 2012. Tyto funkce umožňují „listovat“ mezi řádky tabulky. Lépe řečeno na řádku aktuálním si můžete prostředníctvím takových funkcí sáhnout na řádek minulý nebo následující. Tyto funkce řadíme do tzv Window funkcí a do stejné skupiny patří kromě nich také agregační funkce… Čtěte více »