SQL Server

SQL Server Error 601: Could not continue scan with NOLOCK due to data movement

Na produkčním serveru se pravidelně při větší update dat začalo objevovat následující chybové hlášení: ‘Error 601: Could not continue scan with NOLOCK due to data movement’. Produkční server běží na SQL Server 2008R2 SP1 Standard edition. Po delší hledání se podařilo najít popis chyby v tomto KB:  http://support.microsoft.com/kb/960770/en-us.

Read more
SQL Server

Výpis všech indexů a jejich interní a externí fragmentace

Zjištění míry fragmentace indexů napříč je základní předpoklad pro volbu vhodné strategie optimalizace indexů pomocí rebuild/reorganize operací. Všechny podstatné informace lze získat využitím systémové funkce sys.dm_db_index_physical_stats() a jejím spojením se systémovými pohledy, které nám poskytnou dodatečné informace nutné pro identifikaci indexu.
SQL Server

Rebuild všech indexů v databázi

Nedílnou součástí správy databáze z pohledu výkonu je pravidelná údržba indexů, zejména tam, kde databáze není určena především pro čtení, ale míra DML operací převažuje nad čtením dat. Pomocí přiloženého skriptu je možné provést jednorázový rebuild všech indexů ve všech databázích na spravované instanci, případně skript upravit tak, aby rebuildoval indexy…
SQL Server

Odstranění duplicitních řádků

Existuje řada způsobů, jak z tabulky odstranit duplicitní řádky. Jedním z nich je využití analytické funkce spolu s CTE (Common Table Expression). Pomocí analytické funkce ROW_NUMBER() získáme pro každý řádek číslo, které bude unikátní vždy v rámci dané partition, kterou v příkladu níže vytvoříme tak, že pomocí klauzule PARITION BY…

Read more
SQL Server

Jednoduchý batch generátor a jeho praktické využití

V praxi se často můžeme setkat s nutností provádět některé operace po částech či ve více transakcích, protože pokud bychom je vykonali jako jedinou operaci, bude vše trvat neúměrně dlouho, případně si provedení operace může vyžádat systémové prostředky, které nemáme. Nejčastěji se s tímto scénářem setkáme v případě mazání řádků…
SQL Server

Partitioned pohledy

Partitioned pohledy představují mocný nástroj a rychlou alternativu ke klasickému partitioningu tabulek. Umožňují nám rozdělit velkou tabulku do několika menších tabulek. Data jsou mezi jednotlivými tabulkami rozdělena podle rozsahu hodnot v jednom sloupci, který jsme zvolili jako klíč. Nad tímto sloupcem je v každé tabulce pomocí CHECK omezení určen rozsah hodnot,…
BI

Připojení ke kostce analytických služeb

Excel je v současné době v rámci strategie Microsoftu a jeho konceptu Self BI prosazován jako hlavní nástroj pro analýzu dat, ať již relačních či multidimensionálních. S každou další verzí Office je rozšiřován seznam datových zdrojů, k nimž se lze připojit, a pro podporované datové zdroje se objevuje řada dalších…

Read more
BI

Instalace multidimensionální databáze AdwentureWorks 2014

Microsoft poskytuje pro testování a výuku svých produktů testovací databáze, které obsahují data společnosti AdwentureWorks, fiktivního prodejce kol a cyklistických doplňků. Databáze jsou publikovány na Codeplexu pro různé verze SQL Serveru. V následujícím tutoriálu si ukážeme, jak stáhnout a nainstalovat relační databázi a nad ní postavený multidimensionální model pro SQL…
SQL Server

Zakázání a povolení všech constraintů nad tabulkou

Při práci s tabulkami, které mají cizí klíče zajišťující integritu dat, často řešíme problém, jak tyto klíče a jiná omezení dočasně vypnout, abychom mohli například provést změnu dat v tabulce, rychlý import velkého množství dat či manipulaci s jinou tabulkou, na kterou se původní tabulka odkazuje. Cizí klíče a jiná…
T-SQL

Odstranění času nebo datumu z DATETIME datového typu

Velmi často se stává, že při práci s DATETIME datovým typem nás nezajímá informace o čase, ale pouze datum. Před příchodem SQL 2008 neexistovaly samostatné datové typy pro ukládání pouze datum nebo pouze času (DATE, TIME) a pokud byl v datetime datovém typu uložen i čas, nezbývalo, než čas odstranit (respektive…

Read more