Repository navigation
Expand file tree
/
Copy path26_SQL_CTAS.sql
More file actions
76 lines (61 loc) · 1.56 KB
/
Copy path26_SQL_CTAS.sql
File metadata and controls
76 lines (61 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
---------------------SQL CTAS-----------------------
/*
CTAS (Create table as Select) - robi nowa tabele bazujac
na zapytaniu SQL.
Pytanie widokow jest wolniejsze niz pytanie CTAS tabel,
poniewaz pytanie tabel jest szybsze.Problem jest to ze
takie tabele CTAS ciezej jest utrzymac bo zmiana w glownej
tabeli nie spowoduje odswiezenia sie tableli CTAS.
Syntax of create/insert:
CREATE TABLE Table-Name
(
ID INT,
Name VARCHAR(50)
)
INSERT INTO Table-Name
VALUES (1,'Frank')
Syntax of CTAS (MySQL | Postgres | Oracle):
CREATE TABLE NAME AS
(
SELECT...
FROM...
WHERE...
)
Syntax of CTAS (Sql Server):
SELECT ...
INTO New-Table
FROM ...
WHERE...
*/
-------USE CASE: Optimize Performance--------
/*
Jesli view ma skomplikowana logike, to wykonywanie go caly
czas bedzie kosztowne. W takiej sytuacji lepiej sprawdzi sie
CTAS.
*/
SELECT*
FROM Sales.MonthlyOrders
DROP TABLE Sales.MonthlyOrders
-- Skrypt odswiezajacy tabele CTAS (tsql)
IF OBJECT_ID('Sales.MonthlyOrders', 'U') IS NOT NULL
DROP TABLE Sales.MonthlyOrders;
GO
SELECT
DATENAME(Month,OrderDate) [miesiac],
COUNT(OrderID) [totalOrders]
INTO Sales.MonthlyOrders
FROM Sales.Orders
GROUP BY DATENAME(Month,OrderDate)
-------USE CASE: Create Snapshot of Data--------
/*
Jesli mamy jakis bug i chcemy go naprawic to dobrym
pomyslem bedzie analizowanie tego na snapshocie bazy,
a nie faktycznych danych bo one moga sie zmieniac,
co utrudni nam analize bledow.
*/
-------USE CASE: Physical Data Mart--------
/*
Zrobienie fizycznych hurtowni danych przyspiesza
predkosc wydobywania z nich danych w porownaniu do
widokow.
*/