19. 12. 2008
Microsoft vydal Service Pack 3 (SP3) pro SQL Server 2005
http://www.microsoft.com/downloads/details.aspx?FamilyId=ae7387c3-348c-4faa-8ae5-949fdfbe59c4
Build je 9.00.4035.
Jako všechny Service Packy produktů firmy Microsoft je i tento kumulativní, tedy není nutné instalovat nejprve Service Pack 1 nebo Service Pack 2.
Štítky: SQL Server
7. 8. 2008
SQL Server 2008 jde do výroby
Microsoft dnes oznámil, že SQL Server 2008 je hotov.
Štítky: SQL Server, SQL Server 2008
26. 7. 2008
SQL Server 2008 Release Candidate 0 (RC0)
SQL Server 2008 Release Candidate 0 (RC0) je ke stažení zde:
SQL Server 2008 RC0
Normálně ho mohou stahnout jen předplatitelé MSDN/TechNet, ale z výše uvedeného linku to jde každému. Pokud nevíte, co přesně stahnout, tak doporučuji X86 Executable (929 MB) a nainstalovat to jako Standard Edition.
Jedná se o build 10.0.1442.
Nějaké povídání o novinkách v SQL2008 zde:
SQL Server 2008 Books Online > What's New
Štítky: SQL Server, SQL Server 2008
4. 4. 2008
SQL Server - odstranění české diakritiky
Jak na ořezání české diakritiky v CHAR-ovém nebo VARCHAR-ovém sloupci nebo proměnné?
Přetypovat na VARCHAR stejné délky a využít toho, že např. ruská kódová stránka neobsahuje žádný znak s českou diakritikou:
SELECT CAST(Sloupec AS VARCHAR(8000)) COLLATE Cyrillic_General_CI_AS
FROM dbo.Tabulka
Příklad:
SELECT CAST('Příliš žluťoučký kůň úpěl ďábelské ódy' AS VARCHAR(8000)) COLLATE Cyrillic_General_CI_AS AS Vysledek
Vysledek
-----------------------------------------------------------
Prilis zlutoucky kun upel dabelske ody
(1 row(s) affected)
Funguje na SQL2000+.
Pozor, nefunguje pro Unicode typy NCHAR a NVARCHAR, tam by asi bylo jediné řešení napsat si funkci s konverzní tabulkou (á->a, č->c, ď->d atd.).
Štítky: SQL Server
28. 1. 2008
Vydání finálního SQL Serveru 2008 bude opožděno
Oproti původně anoncovanému termínu bude SQL Server 2008 (nástupce SQL Serveru 2005) vydán o půl roku později. Tedy až někdy ve 3. čtvrletí roku 2008. V tomto okamžiku je k dispozici beta verze, jak je vidět zde: Microsoft SQL Server 2008, 2005, 2000 and 7.0 Builds
Zdroj:
Štítky: SQL Server, SQL Server 2008
3. 8. 2007
Jak rychle zjistit, jaký Service Pack, případně hotfix mám nainstalovaný na SQL Serveru
Na stránce:
Microsoft SQL Server 2008, 2005, 2000 and 7.0 builds
je docela výživný seznam všech možných hotfixů a Service Packů které existují pro:
- SQL Server 7.0
- SQL Server 2000
- SQL Server 2005
- a dokonce i pro připravovaný SQL Server 2008 (kódové jméno Katmai)
Ve sloupci "Availability" lze zjistit, jestli je hotfix/sp veřejný (a tedy přímo stahnutelný).
Štítky: SQL Server, SQL Server 2008
11. 7. 2007
Zveřejněno datum vydání SQL Serveru 2008
Firma Microsoft zveřejnila datum vydání SQL Serveru 2008 (přímý nástupce SQL Serveru 2005). Bude to ve středu 27. února 2008 datum bylo posunuto. Současně s ním vydává ještě Windows Server 2008 a Visual Studio 2008.
Zdroj:
Microsoft Executives Outline Next-Generation Business Opportunities for Partners With New Products, Tools and Programs
Štítky: SQL Server, SQL Server 2008
10. 7. 2007
Obnova databáze na SQL Serveru na "100 %"
Řešil jsem následující požadavek:
"Potřebuji zazálohovat ostrou databázi a obnovit ji do cvičné s tím, že cvičná databáze může existovat a mohou v ní být přihlášeni uživatelé. V tom případě je chci odpojit a obnovu provést."
Jelikož výchozí chování obnovy (SQL-příkazu RESTORE DATABASE) je, že pokud jsou v obnovované databázi přihlášení uživatelé, tak selže na chybovou hlášku:
Server: Msg 3102, Level 16, State 1, Line 1
RESTORE cannot process database 'Cvicna' because it is in use by this session. It is recommended that the master database be used when performing this operation.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
A protože vím, že až to budu příště potřebovat, tak bych ten skript určitě vymýšlel znovu, tak si ho znamenám sem.
--záloha databáze Ostra
BACKUP DATABASE Ostra TO DISK='C:\ZALOHA\Ostra.bak' WITH INIT--obnova do Cvicne; pokud databáze existuje, dej ji
--natvrdo OFFLINE, abys vykilloval případné uživatele
USE masterIF DB_ID('Cvicna')IS NOT NULL
ALTER DATABASE Cvicna SET OFFLINE WITH ROLLBACK IMMEDIATERESTORE DATABASE Cvicna
FROM DISK='C:\ZALOHA\Ostra.bak'
WITH FILE=1,
MOVE 'Ostra' TO 'C:\DATA\Cvicna.mdf',
MOVE 'Ostra_log' TO 'C:\DATA\Cvicna_log.ldf',
REPLACE
Skript funguje od verze SQL Serveru 2000.
Štítky: SQL Server
27. 6. 2007
SQL Server 2008 bude obsahovat 7 nových datových typů
Microsoft SQL Server 2008 (oficiálně oznámený následník SQL Serveru 2005) bude obsahovat následující nové datové typy (popisky jsem nechal v angličtině):
DATE - ANSI-compliant date data type (konečně!)
TIME - ANSI-compliant time data type with variable precision
DATETIMEOFFSET - timezone aware/preserved datetime
DATETIME2 - like DATETIME, but with variable precision and large date range
GEOMETRY - "flat earth" spatial data type
GEOGRAPHY - "round earth" spatial data type
HIERARCHYID - represents hierarchies using path enumeration model
Žádný z těchto datových typů není obsažen v June CTP. Doufám jen, že použití bude jednoduché jako například:
SELECT CAST(GETDATE() AS DATE)
zdroj: SQL Server 2008 Will Have 7 New Datatypes
Štítky: SQL Server, SQL Server 2008
9. 5. 2007
Další verze SQL Serveru bude uvolněna v roce 2008
Podle následující tiskové zprávy bude nástupce SQL Serveru 2005 uvolněn v roce 2008:
Není známo, pod jakým jménem se bude prodávat. Zatím se používá kódové jméno SQL Server "Katmai".
Technologické informace zatím nejsou známy žádné. Většina toho, co se objeví jsou informace spíše "marketingového typu". Žádnou revoluci (jako byla například mezi verzemi 6.5 a 7.0) bych ale nečekal.
Štítky: Katmai, SQL Server, SQL Server 2008
3. 3. 2007
Co přináší Service Pack 2 pro SQL Server 2005
Jak už jsem dříve psal, Service Pack 2 pro SQL Server 2005 je na světě a nyní by chtělo zmínit ty nejdůležitější "highlights".
Tady jsou:
- plná podpora pro Windows Vista
- uživatelsky definované reporty v Management Studiu
- nový datový typ VARDECIMAL (jen verze Enterprise a Developer)
- mnoho oprav Maintenance plánů + přidání možnosti vícenásobných Schedulí
- vylepšen dialog zálohy/obnovy/připojení (attach) databáze
- vylepšeny možnosti skriptování databázových objektů
- sjednoceny názvy položek v kontextovém menu (přidána položka Edit a Design, odebrána Modify)
- vylepšen error reporting Database Mailu
- spolehlivější Copy database wizard (Průvodce kopií databáze) s lepším logováním
- logon triggery
- Reporting Services mohou nyní být integrovány se SharePoint Services 3.0 nebo s Office 2007 SharePoint Server
- vylepšení Plan cache
- nová table-valued systémová funkce sys.dm_exec_text_query_plan
- systémová funkce OBJECT_NAME() nyní akceptuje volitelný 2. parametr číslo databáze (DB_ID)
- nová systémová funkce OBJECT_SCHEMA_NAME() umožňuje získat jméno vlastníka objektu (bez nutnosti SELECTů do systémových VIEW)
- nová systémová uložená procedura sp_refreshsqlmodule
Úplně kompletní seznam chyb je zde (v angličtině):
921896 A list of the bugs that are fixed in SQL Server 2005 Service Pack 2
A kompletní seznam novinek zde (v angličtině):
Štítky: Aplikace, Service Packs, SQL Server, Vista
19. 2. 2007
Microsoft vydal Service Pack 2 pro SQL Server 2005
Dlouho očekávaný Service Pack 2 pro SQL Server 2005 byl uvolněn. Hlavní stránka Service Packu 2 je:
přímý link ke stažení (x86) (exe, 282 MB)
přímý link ke stažení (x64) (exe, 339 MB)
přímý link ke stažení (IA64) (exe, 392 MB)
Tato verze je určena pro tyto edice SQL Serveru 2005:
- Standard Edition
- Enterprise Edition
- Enterprise Evaluation Edition
- Developer Edition
- Workgroup Edition
Pro Express Edition je určena jiná verze, která je k dispozici zde:
přímý link ke stažení (x86) (exe, 36,4 MB)
Poznámka:
Jako všechny Service Packy produktů firmy Microsoft je i tento kumulativní, tedy není nutné instalovat nejprve Service Pack 1.
Štítky: SQL Server, SQL Server Express Edition
26. 1. 2007
Microsoft SQL Server 2005 - zálohování databází
Návod, jak nejjednodušeji vytvořit dávku nebo job, kterým zazálohuji databázi SQL Serveru 2005 (2000 nebo 7.0)
Nechci se zabývat tím, jak zálohování naklikat nějakým grafickým nástrojem jako je například Management Studio nebo Enterprise Manager. Zaměřím se na psaní dávky nebo jobu.
Součástí instalace každého SQL Serveru 2005 (tedy i Express Edition) je řádková utilita SQLCMD, která slouží k dávkovému spouštění SQL-skriptů. A my využijeme příkazu BACKUP DATABASE takto:
SQLCMD.EXE -S JmenoServeru -E -Q "BACKUP DATABASE JmenoDatabaze TO DISK='C:\Cesta\JmenoDatabaze.bak' WITH INIT"Význam jednotlivých parametrů (pozor, jsou case-sensitive, takže záleží na velikosti, -e a -E by bylo něco jiného):
-S JmenoServeru
Jméno SQL Serveru, na který chci SQL-skript poslat. Jméno může obsahovat specifikaci protokolu (tcp:, np:, lpc:; pozor: prefixy musí být malými písmeny!) a/nebo portu - viz příklady:-S SERVER01
-S tcp:SERVER01
-S tcp:192.168.1.1
-S tcp:192.168.1.1,14333
-E
Říká, že se mám přihlašovat Windows autentikací (také se jí dříve říkalo NT autentikace). Pokud by se někdo chtěl přihlašovat jménem a heslem, tak by parametr -E nahradil -U jméno a -P heslo.
-Q "BACKUP DATABASE..."
Za parametrem -Q je v uvozovkách SQL-příkaz, který chceme na SQL Server poslat. Samozřejmě identifikátor JmenoDatabaze musíte nahradit svým jménem databáze. Klauzule WITH INIT říká, že v případě, že soubor C:\Cesta\JmenoDatabaze.bak už existuje, bude přepsán. Pokud by tam tato klauzule nebyla, tak by záloha byla přidána na konec existujícího souboru a .BAK soubor by postupně rostl.
Pro SQL Server 2000 nebo 7.0 bychom místo SQLCMD.EXE použili OSQL.EXE (je i ve verzích MSDE 1.0 a MSDE2000).
Tento příkaz můžete vložit do dávky (.CMD nebo .BAT soubor) nebo z něj udělat job přes Naplánované úlohy (Scheduled Tasks v anglických Windows).
Pokud chcete zálohování urychlit, podívejte se do mého článku TZblok: Výrazné urychlení zálohování na Microsoft SQL Serveru.
Pro úplnost ještě uvádím, jak by vypadala obnova databáze (RESTORE DATABASE):
SQLCMD.EXE -S JmenoServeru -E -Q "RESTORE DATABASE JmenoDatabaze FROM DISK='C:\Cesta\JmenoDatabaze.bak' WITH REPLACE"Štítky: SQL Server
24. 1. 2007
Omezení Microsoft SQL Server 2005 Express Edition
Microsoft SQL Server 2005 Express Edition je edice SQL Serveru 2005 dostupná zdarma. Má ale nějaká omezení:
- Velikost jedné databáze (MDF soubor) je omezena na 4 GB. Do této velikosti se nezapočítává velikost transakčního logu (LDF soubor). Databází ale mohu mít "neomezeně" (přesně: 32 767).
- Je využíván jen jeden procesor. Neumí tedy využít výhod více procesorů nebo technologií jako HyperThreading (HT).
- Je využíván maximálně 1 GB operační paměti (RAM).
- Neobsahuje službu SQL Server Agent. Není tedy možné spouštět joby a maintenance plány.
- Neobsahuje žádnou "enterprise feature", jako například: OLAP, Integration Services (SSIS), Notification Services, Report Builder, Log shipping, Database Mirroring, Fail-over Clustering apod.
Není nijak omezen počet současně přihlášených uživatelů, ani není žádným způsobem zpomalováno vyhodnocování dotazů známé z MSDE 2000 (Workload Governor).
Stáhnout se dá zde:
- Microsoft SQL Server 2005 Express Edition Service Pack 1 (exe, 53,8 MB)
jedná se o SQL Server 2005 Express Edition se zaintegrovaným SP1 - Service Pack se nemusí tedy instalovat zvlášť, už tam rovnou je
Instalace vyžaduje Microsoft .NET Framework 2.0.
Podporované operační systémy:
Windows 2000 Service Pack 4 (SP4)
Windows XP Service Pack 2 (SP2)
Windows 2003 Service Pack 1 (SP1)
Windows Vista
Dále lze volně stáhnout grafický nástroj pro správu SQL Serveru 2005 Express Edition (něco jako Enterprise Manager známý z SQL Serveru 2000):
- Microsoft SQL Server Management Studio Express (msi, 38,4 MB)
Poznámka:
- Není k dispozici x64 (64bitová) verze SQL Server 2005 Expres Edition. Na x64 operačních systémech Windows je ale možné normálně používat x86 (32bitovou) verzi.
- Verze pro IA64 (Itanium) také není k dispozici a x86 verze na Windows IA64 není podporována.
Štítky: SQL Server, SQL Server Express Edition
11. 1. 2007
Finální verze Microsoft SQL Server 2005 Compact Edition
Dnes byla uvolněna finální verze Microsoft SQL Server 2005 Compact Edition (zkratka SSce) pro Windows. Je to je 1,73 MB velký MSI instalační balíček.
Původně se produkt měl jmenovat SQL Server Everywhere Edition (používala se také zkratka SSEv), ale Microsoft usoudil, že to není vhodný název.
A co to tedy vlastně je, ta Compact Edition?
- je to tzv. embedded (in-memory) databáze (jako například Firebird Embedded nebo mSQL), jednoduše řečeno je to pár (8) DLL-ek, které si aplikace natáhne (samozřejmě to, narozdíl od "velkého" SQL Serveru, neběží jako služba)
- použití si dovedu představit tam, kde to ještě není na SQL Server 2005 Express Edition a už to není na nějaký jednoduchý XML nebo INI soubor
- měla by nahradit JET
- je zdarma (stejně jako Express Edition)
- podporuje podmnožinu Transact-SQL z "velkého" SQL Serveru; co je přesně podporováno, naleznete v dokumentaci: SQL Server 2005 Compact Edition Books Online, která bohužel ještě není ke stažení :(
- na správu lze použít Management Studio z SQL Serveru 2005 SP2+
- vyžaduje .NET framework 2.0
Moje poznatky:
- pokud máte nainstalovánu nejakou starší verzi SSEv nebo SSce, tak ji nejprve musíte odinstalovat
- instalátor chce jen cestu, kam se mají DLL-ka nasypat, nic jiného - viz obrázek výše
- jako provider do ConnectionString se používá: Microsoft.SQLSERVER.MOBILE.OLEDB.3.0
- podporovány jsou:
+ tabulky (CREATE TABLE)+ pohledy (CREATE VIEW)
+ datové typy: INT, SMALLINT, TINYINT, BIGINT, BIT, DATETIME, NUMERIC, REAL, FLOAT, MONEY, NVARCHAR, NCHAR, NTEXT, UNIQUEIDENTIFIER, VARBINARY, BINARY, IMAGE
+ vlastnost IDENTITY
+ PRIMARY KEY / UNIQUE constraints
+ indexy - podporovány nejsou:
- uložené procedury (stored procedures)
- uživatelsky definované funkce (UDF)
- datové typy: CHAR, VARCHAR, musím použít jejich UNICODE varianty NCHAR a NVARCHAR - databázový .SDF soubor lze chránit heslem a/nebo šifrovat
Štítky: SQL Server, SQL Server Compact Edition
9. 1. 2007
Výrazné urychlení zálohování na Microsoft SQL Serveru
Zálohování na SQL Serveru (2005 i 2000) lze velmi jednoduše výrazně urychlit - příkaz BACKUP DATABASE má volitelný parametr BLOCKSIZE, kterým mohu SQL Serveru předepsat velikost bloku, po kterých bude záloha zapisována na médium.
Pokud tento volitelný parametr neuvedu, tak se SQL Server pokusí tuto hodnotu odhadnout automaticky, očividně ne však optimálně.
Pokud použiji nejvyšší možnou hodnotu, což je 65536 (=64 KB), dosáhnu nejvyšší rychlosti.
Takže T-SQL syntaxe by pak vypadala například takto:
BACKUP DATABASE JmenoDatabaze TO DISK='C:\Cesta\JmenoDatabaze.bak' WITH BLOCKSIZE=65536
Podle mých měření na slabším hardware a 300MB databázi se urychlení pohybovalo kolem 50 %. Podle tohoto zdroje je urychlení (na výrazně lepším HW) až pětinásobné!
Štítky: SQL Server
27. 12. 2006
Rozdíly mezi SQL Serverem 2005 a 2000
- Paradoxně začnu tím, co se nezměnilo: databázové jádro nebylo přepsáno, jak by se mohlo zdát podle marketingového humbuku; všechny známé (a občas obtěžující) limity zůstaly (maximální velikost řádky bez BLOBů: 8060 bajtů, jen 2 typy indexů: clustered a nonclustered, typ CHAR a VARCHAR maximálně 8000).
- Byl vylepšen optimalizátor dotazů (podle očekávání se některé dotazy oproti SQL2000 zrychlily a některé zpomalily).
- Management Studio nahradilo Enterprise Manager a Query Analyzer (kdo zná Visual Studio, bude hned doma, kdo ne, užije si než si zvykne :)). Profiler zůstal víceméně stejný.
- Je možné psát rekurzivní dotazy (něco jako v Oracle SELECT ... CONNECT BY PRIOR ..., ale ANSI SQL3 syntaxí).
- V T-SQL je (konečně) možné odchytávat výjimky (TRY...CATCH)
- Nový datový typ xml.
- Integrace .NET frameworku; je možné psát uložené procedury a triggery v libovolném .NETím jazyku. Pozor, v žádném, případě to neznamená, že je psát v .NETu musím.
- Nativní x64 verze SQL Serveru.
- Free verze MSDE2000 byla nahrazena SQL Server 2005 Express Edition. Omezení na velikost jedné databáze bylo zvýšeno z 2 GB na 4 GB + přibylo zjednodušené Management Studio Express.
Další věci, které v tomto rychlém přehledu nechci popisovat, protože směřují spíš do enterprise sektoru, dám jen jejich seznam s odkazy:
- Database Mirroring
- Database Snapshots
- Partitioning
- Online Restore
- Table and Index Partitioning
- Business Intelligence Development Studio
- Report Builder
- User Defined Aggregates
...a některé další
Změn je docela dost, odpovídá to pěti letem čekání (2000 -> 2005). Další verze SQL Serveru by podle neoficiálních informací měla být cca za 2 - 3 roky.
zdroje:
- Microsoft SQL Server 2005 Hlavní stránka (česky)
- Microsoft SQL Server 2005 Hlavná stránka (slovensky)
- Microsoft SQL Server 2005 Home (anglicky)
- What's New in SQL Server 2005 (anglicky)
Štítky: .NET, SQL Server
13. 12. 2006
Microsoft SQL Server 2005 SP2 - datový typ VARDECIMAL
Datový typ NUMERIC(precision[,scale]):
| precision | storage bytes |
| 1 – 9 | 5 |
| 10-19 | 9 |
| 20-28 | 13 |
| 29-38 | 17 |
A datové typy NUMERIC (a jeho alias DECIMAL) se začnou ukládat spíše jako VARCHAR, tedy zaberou jen tolik bajtů, kolik je číslic + 1. To může mít dalekosáhlý vliv na velikost databáze (zvláště, pokud jsou časté hodnoty typu 0.0, 1.0 apod.)
Příklad:
číslo 0.0 jako datový typ NUMERIC(19,6) zabere 9 bajtů, s vlastností VARDECIMAL jen 2 bajty.
Zdroje:
Estimating the space savings with VARDECIMAL storage format: http://blogs.msdn.com/sqlserverstorageengine/archive/2006/11/13/estimating-the-space-savings-with-vardecimal-storage-format.aspx
nějaká měření, o kolik se databáze může zmenšit:
Reducing the Size of your Database in SQL Server 2005/SP2:
http://blogs.msdn.com/sqlserverstorageengine/archive/2006/11/10/reducing-the-size-of-your-database-in-sql-server-2005-sp2.aspx
Pozor, důležitá věc: bohužel tato příjemná vlastnost se týká jen Enterprise a Developer edicí Microsoft SQL Serveru 2005! Jinými slovy: ve Standard, natož Express edition není.
Štítky: SQL Server