MERGE utasítás Komponálható DML GROUPING SETS Adattömörítés Csillag Join és Bitmap Filter Sparse oszlopok Filtered index Full Text Kereső Megbízható.

Slides:



Advertisements
Hasonló előadás
10. gyakorlat SQL SELECT.
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Delphi programozás alapjai
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
Adatbázis gyakorlat – SUBSELECT – Tarcsi Ádám március.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
SQL – DQL (Data Query Language ) adat lekérdezések
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
Triggerek II. ADATBÁZIS ALAPÚ RENDSZEREK.  Az Oracle kifinomult módon támogatja a sorszámozások generálását  Szekvencia: olyan adatbázis-objektum, amely.
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Adatbázis alapú rendszerek
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
SQL Server 2005 relációs adattárház technológiák
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Nézettáblák létrehozása, módosítása és törlése
SQL Server 2014 CTP2 újdonságok
1 Informatikai Szakképzési Portál Adatbázis kezelés DML – Adat manipuláló nyelv.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
SQL.
Az SQL nyelv alapjai.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
Adatkezelés Ez az előadó neve beosztása vállalata.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
SQL.
MSSQL szerver 2005/2008.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
ORACLE ORDBMS adminisztrációs feladatok 3. rész dr. Kovács László 2004.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Ma az un. Relációs adatmodelleket használjuk.
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
5. gyakorlat Fleiner Rita.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis rendszerek I
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Triggerek gyakorlás.
Adatbázisok SQL.
Triggerek Kalmár György.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

MERGE utasítás Komponálható DML GROUPING SETS Adattömörítés Csillag Join és Bitmap Filter Sparse oszlopok Filtered index Full Text Kereső Megbízható függőségek Profiler Deprecation események Apróságok

INSERT/UPDATE/DELETE egy művelettel INSERT/UPDATE/DELETE egy művelettel Gyorsabb, mint a külön I/U/D – 1x megy végig a táblákon Gyorsabb, mint a külön I/U/D – 1x megy végig a táblákon Adatbetöltésekre Adatbetöltésekre UPSERT eljárásokhoz UPSERT eljárásokhoz Szinkronizáló alkalmazásokhoz Szinkronizáló alkalmazásokhoz A műveletek egy tranzakcióban futnak A műveletek egy tranzakcióban futnak merge into Cel using Forras on Forras.Id = Cel.Id when matched then update set Cel.Adat = Forras.Adat,... update set Cel.Adat = Forras.Adat,... when target not matched then insert (Id, Adat,...) insert (Id, Adat,...) values(Forras.Id, Forras.Adat,...) values(Forras.Id, Forras.Adat,...) when source not matched then delete; merge into Cel using Forras on Forras.Id = Cel.Id when matched then update set Cel.Adat = Forras.Adat,... update set Cel.Adat = Forras.Adat,... when target not matched then insert (Id, Adat,...) insert (Id, Adat,...) values(Forras.Id, Forras.Adat,...) values(Forras.Id, Forras.Adat,...) when source not matched then delete; merge into Cel using Forras on Forras.Id = Cel.Id when matched and (Forras.OszlopN <> Cel.OszlopN) then update set Cel.Adat = Forras.Adat,... update set Cel.Adat = Forras.Adat,... when target not matched then insert (Id, Adat,...) insert (Id, Adat,...) values(Forras.Id, Forras.Adat,...) values(Forras.Id, Forras.Adat,...) when source not matched then delete; merge into Cel using Forras on Forras.Id = Cel.Id when matched and (Forras.OszlopN <> Cel.OszlopN) then update set Cel.Adat = Forras.Adat,... update set Cel.Adat = Forras.Adat,... when target not matched then insert (Id, Adat,...) insert (Id, Adat,...) values(Forras.Id, Forras.Adat,...) values(Forras.Id, Forras.Adat,...) when source not matched then delete;

Adatmódosító műveletek által érintett sorok felhasználása „virtuális” táblaként Későbbi verzióban nem csak insert lehet a művelet célja insert into Egyiktábla(Oszlop) select Oszlop1 from (update MásikTábla Set Oszlop1 = Újérték output inserted.Oszlop1) as d; insert into Egyiktábla(Oszlop) select Oszlop1 from (update MásikTábla Set Oszlop1 = Újérték output inserted.Oszlop1) as d;

{ MERGE, Komponálható DML } Komponálható DML }

A GROUP BY kibővítése Több feltétel szerinti csoportosítás Egy eredményhalmazt ad vissza (több GROUP BY és UNION ALL-lal helyettesíthető) Egyszerűsíti a többféle szempont szerint aggregálásokat Gyorsabb mint a UNION-os megoldás Újrahasznosítja a részeredményeket Egyszer megy végig a forrásadatokon SELECT C1, C2, …, Cn, Agg(M1), …, Agg(Mk) FROM T GROUP BY GROUPING SETS ((G1), (G2), …, (Gx)) SELECT C1, C2, …, Cn, Agg(M1), …, Agg(Mk) FROM T GROUP BY GROUPING SETS ((G1), (G2), …, (Gx))

SELECT D.CalendarYear, D.CalendarQuarter, T.SalesTerritoryCountry, SUM(F.SalesAmount) AS SalesAmount FROM dbo.FactResellerSales F INNER JOIN dbo.DimDate D ON F.OrderDateKey = D.DateKey INNER JOIN dbo.DimSalesTerritory T ON F.SalesTerritoryKey = T.SalesTerritoryKey GROUP BY GROUPING SETS ( (CalendarYear, CalendarQuarter, SalesTerritoryCountry), (CalendarYear, CalendarQuarter), (SalesTerritoryCountry),()) ORDER BY CalendarYear, CalendarQuarter, SalesTerritoryCountry SELECT D.CalendarYear, D.CalendarQuarter, T.SalesTerritoryCountry, SUM(F.SalesAmount) AS SalesAmount FROM dbo.FactResellerSales F INNER JOIN dbo.DimDate D ON F.OrderDateKey = D.DateKey INNER JOIN dbo.DimSalesTerritory T ON F.SalesTerritoryKey = T.SalesTerritoryKey GROUP BY GROUPING SETS ( (CalendarYear, CalendarQuarter, SalesTerritoryCountry), (CalendarYear, CalendarQuarter), (SalesTerritoryCountry),()) ORDER BY CalendarYear, CalendarQuarter, SalesTerritoryCountry Ország Év, negyedév Országonkénti összes Idő- szaki összes Teljes összeg Év, negyedév, ország összes

Táblák és indexek tartalmát tárolja tömörítve Elsősorban adattárházak tény tábláihoz (mert a módosításokat kicsit lassítja) Lehetségesen gyorsabb lekérdezések IO intenzív lekérdezések esetén Kevesebb IO „költség” De több CPU „költség” 2-7-szeres tömörítés A többi szolgáltatás számára észrevétlen

Sor tömörítés fix adatok változó hosszúságú kódolása (int, decimal, stb.) Lap tömörítés Prefix enkódolás Adatszótár használata (hashtable-szerű működés) BLOB adatok (varchar(max) stb.) nem tömörítettek Megoldások: saját függvény, saját típus, alkalmazás tömörít, FILESTREAM tömörített NTFS-en alamizsna 3dár 4uszi 0lakatos aladár alamizsna alamuszi lakatos  Anchor sor

Mennyi nyereség várható? Bekapcsolás táblára Indexre alter table Tába rebuild with (data_compression = page vagy row) alter table Tába rebuild with (data_compression = page vagy row) alter index Indexnév on Tábla rebuild with (data_compression = page vagy row); alter index Indexnév on Tábla rebuild with (data_compression = page vagy row); exec sp_estimate_data_compression_savings 'Séma', 'Tábla', Index id, Partíció, 'row' vagy 'page'

Új, belső módszer csillagtáblákra épülő JOIN- ok gyorsítására Hatalmas, n x 100 millió soros táblákra is Bloom Filter implementáció Feltételek Egyoszlopos, egyenlőség alapú JOIN Integer a legjobb, in-row optimization Csak párhuzamos végrehajtási tervben A Tény tábla legyen a legnagyobb Sok szál és memória kell hozzá

“Sparse” attribútum az oszlopon Tárolás optimalizálás: 0 bájt a NULL értékek tárolása NULL tömörítés a TDS (drót) szinten Az alkalmazások nem látnak belőle semmit Max egy táblán XML-ként is láthatók és módosíthatók a sparse oszlopok (Sparse Column Set) Gyorsabb lehet mint a többtáblás (Entity-Attribute-Value) design Entity-Attribute-ValueSparse

Az adatok egy {részhalmazára} épített nonclustered index Kicsi index, kicsi IO Sparse oszlopokkal rendelkező táblákra is kiváló, csak a tényleges (nem NULL) adatokat indexelve create nonclustered index idx_BOF on Production.BillOfMaterials (ComponentID, StartDate) where EndDate IS NOT NULL create nonclustered index idx_BOF on Production.BillOfMaterials (ComponentID, StartDate) where EndDate IS NOT NULL

{ Sparse oszlopok, Filtered Index, Filtered Index, Powershell integráció } Powershell integráció }

Full-Text motor és az indexek teljesen integráltak Katalógus, az index és a nem indexelendő szavak listája (stoplist) az adatbázisban lakik A motor is az adatbázisban fut! (a szótördelés nem) Jobb teljesítmény Vegyes lekérdezések (FullText & Relációs) gyorsabbak Az optimalizáló tud a FT indexről FileStream integrált Nyitottá vált, látható minden működési részlet és adat SELECT * FROM candidates WHERE CONTAINS(resume,’”SQL Server”’) --FT index AND ZipCode = ‘2049’ --SQL index

A függőségek {név} és id alapján is rögzítődnek A késleltetett névfeloldás miatt SQL Server 2005 csak id-t használt Adatbázisok és szerverek közötti hivatkozásokat is követi! sys.sql_expression_dependencies Általános ki-kitől függ alaptábla sys.dm_sql_referenced_entities Kire hivatkozik? sys.dm_sql_referencing_entities Ki hivatkozik rá?

{ Full Text kereső, Függőségek } Függőségek }

Jelzik, ha olyan szolgáltatást használunk, amit már nem fognak támogatni Deprecation Announcement Kerüljük, mert már nem támogatják a jövőben int; = 9 ALTER DATABASE AdventureWorks SET TORN_PAGE_DETECTION ON Deprecation Final Support Már a következő verzió se támogatja sp_addserver SELECT … FROM Sales.SalesOrderDetail COMPUTE SUM(UnitPrice) BY SalesOrderID

CONVERT hexa támogatás Sor konstruktor (VALUES) Értékadó operátorok: +=, -=, *=, /=, … Változó inicializálás létrehozáskor INSERT INTO Contact VALUES ('John Doe', ' '), ('Jane Doe', ' '), ('John Smith', ' '); INSERT INTO Contact VALUES ('John Doe', ' '), ('Jane Doe', ' '), ('John Smith', ' '); UPDATE Raktárkészlet SET Mennyiség += s.Mennyiség FROM Raktárkészlet AS r INNER JOIN Eladások AS r ON r.id = e.id UPDATE Raktárkészlet SET Mennyiség += s.Mennyiség FROM Raktárkészlet AS r INNER JOIN Eladások AS r ON r.id = e.id int = 5; varchar(10) = 'xxx'; int = 5; varchar(10) = 'xxx'; binary(4) = CAST( as binary(4)) SELECT 1) -- 0x075BCD15 binary(4) = CAST( as binary(4)) SELECT 1) -- 0x075BCD15

Fejlesztőknek XML újdonságok Entity Framework Filestream Spatial típusok HierarchyID Integration Services Analysis Services Reporting Services Üzemeltetőknek Szabály alapú felügyelet AuditTitkosításTömörítésFüggőségekMonitorozásOptimalizálás Resource Governor

{ Kezdés 13:25-kor }