Archiív rubriky: SQL Administrace

Rubrika SQL Administrace sdružuje články zaměřené na MS SQL Server, konkrétně administraci serveru a databází.

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

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

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… Č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 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é… Č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 »

SQL Login – Definice oprávnění na úrovni serveru

V administraci SQL Server existují 2 pojmy, které si mezi sebou můžeme snadno splést. Jde o SQL Login a SQL User. Zatímto SQL Login umožňuje spravovat oprávnění pro přístup k serveru, tak SQL User definuje práva pro přístup k databázím. V tomto článku se blíže podíváme na Login. SQL Login Umožňuje přístup k SQL Serveru.… Čtěte více »

SQL Indexy – Teorie indexování jednoduše

Správné indexování tabulek v SQL Server je základem pro dobrý výkon databází při dotazování. Chcete-li vytvořit vhodné sql indexy, tak je potřeba pochopit, jakým způsobem SQL Server ukládá data do tabulek/indexů. Neméně důležité je také vědět, jak k těmto údajům následně přistupuje při dotazování. Jak SQL server organizuje data fyzicky? V SQL Server je nejmenší… Čtěte více »

SQL Chyba: Login failed for user – co s tím?

SQL Error “Login failed for user <uživatelské jméno>. The user is not associated with a trusted SQL Server connection” je vcelku častou chybou, kterou uživatelé a administrátoři řeší. Problémem je, že SQL Server nedokáže identifikovat uživatelské jméno. Takto vypadá Error message: Jaké jsou nejčastější důvody? Špatně zadané přihlašovací údaje nebo typ autentizace (Windows vs SQL) Login… Čtěte více »

SQL Chyba: Saving changes is not permitted

Při práci s databázovými objekty se můžeme dostat do situace kdy chceme změnit vlastnost objektu, např. změnit datový typ u sloupce tabulky přes design tabulky v SQL Server management studio. Pokud jsou v tabulce data, tak vám SQL server při pokusu o změnu pravděpodobně vypíše chybu “Saving changes is not permitted. The changes you have… Čtěte více »

SQL Collation – jak změnit collation u sloupce tabulky

Při instalaci SQL Server je jedním z parametrů, který je potřeba při instalace nastavit je Server collation, což je parametr, který ovlivňuje jakým způsobem SQL skladuje non-unicode data. V českých podmínkách bychom měli volit SQL Collation CZECH_CI_AS. Při zakládání databáze si můžeme taktéž zvolit collation, která může být jiná než Collation SQL Server instance. Při… Čtěte více »