Hauv yav dhau los Tshooj Kuv tau piav qhia txog lub tswv yim thiab kev siv ntawm cov ntaub ntawv tsim los ntawm kev ua haujlwm, tsis yog cov rooj thiab cov teb xws li hauv cov ntaub ntawv sib raug zoo. Nws muab ntau yam piv txwv qhia qhov zoo ntawm qhov kev mus kom ze tshaj qhov classical. Ntau tus pom lawv tsis ntseeg txaus.
Hauv tsab xov xwm no, kuv yuav qhia tias lub tswv yim no tso cai rau koj kom sai thiab yooj yim sib npaug sau ntawv thiab nyeem rau hauv cov ntaub ntawv yam tsis muaj kev hloov pauv hauv kev ua haujlwm logic. Cov kev ua haujlwm zoo sib xws tau sim ua kom tau raws li kev lag luam niaj hnub DBMSs (tshwj xeeb, Oracle thiab Microsoft SQL Server). Thaum kawg ntawm tsab xov xwm kuv yuav qhia tias lawv tau ua dab tsi, muab nws me me, tsis ua haujlwm zoo heev.
piav qhia
Raws li ua ntej, kom nkag siab zoo dua kuv yuav pib cov lus piav qhia nrog cov piv txwv. Cia peb hais tias peb yuav tsum tau siv cov logic uas yuav rov qab tau cov npe ntawm cov chaw haujlwm nrog cov neeg ua haujlwm hauv lawv thiab lawv cov nyiaj hli tag nrho.
CLASS Department βΠΡΠ΄Π΅Π»β;
name βΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅β = DATA STRING[100] (Department);
CLASS Employee βΠ‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊβ;
department βΠΡΠ΄Π΅Π»β = DATA Department (Employee);
salary βΠΠ°ΡΠΏΠ»Π°ΡΠ°β = DATA NUMERIC[10,2] (Employee);
countEmployees βΠΠΎΠ»-Π²ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²β (Department d) =
GROUP SUM 1 IF department(Employee e) = d;
salarySum βΠ‘ΡΠΌΠΌΠ°ΡΠ½Π°Ρ Π·Π°ΡΠΏΠ»Π°ΡΠ°β (Department d) =
GROUP SUM salary(Employee e) IF department(e) = d;
Qhov nyuaj ntawm kev ua cov lus nug no hauv ib qho DBMS yuav sib npaug O (tus naj npawb ntawm cov neeg ua haujlwm)vim tias qhov kev suav no yuav tsum tau tshuaj xyuas tag nrho cov lus ntawm cov neeg ua haujlwm thiab tom qab ntawd muab lawv los ntawm chav haujlwm. Tseem yuav muaj qee qhov me me (peb ntseeg tias muaj ntau tus neeg ua haujlwm ntau dua li cov tuam haujlwm) ntxiv nyob ntawm qhov kev npaj xaiv O (cov naj npawb ntawm cov neeg ua haujlwm) los yog O (tus naj npawb ntawm departments) rau pab pawg thiab lwm yam.
Nyob rau hauv qhov kev thov kom siv, lub functional DBMS yuav tsim ib tug subquery uas yuav xam cov nqi yuav tsum tau rau lub department, thiab ces ua ib tug JOIN nrog lub department rooj kom tau lub npe. Txawm li cas los xij, rau txhua txoj haujlwm, thaum tshaj tawm, nws tuaj yeem teeb tsa tus cim tshwj xeeb MATERIALIZED. Lub kaw lus yuav cia li tsim ib qho chaw sib raug rau txhua qhov haujlwm no. Thaum hloov tus nqi ntawm ib qho kev ua haujlwm, tus nqi ntawm daim teb kuj tseem yuav hloov pauv hauv tib qho kev hloov pauv. Thaum nkag mus rau qhov kev ua haujlwm no, daim teb ua ntej xam yuav nkag mus.
Tshwj xeeb, yog tias koj teeb MATERIALISED rau kev ua haujlwm suav cov neeg ua haujlwm ΠΈ nyiaj hli, ces ob daim teb yuav muab ntxiv rau lub rooj nrog cov npe ntawm cov tuam tsev, uas yuav khaws cov neeg ua haujlwm thiab lawv cov nyiaj hli tag nrho. Thaum twg muaj kev hloov pauv hauv cov neeg ua haujlwm, lawv cov nyiaj hli lossis kev koom tes hauv chav haujlwm, lub kaw lus yuav cia li hloov cov txiaj ntsig ntawm cov haujlwm no. Cov lus nug saum toj no yuav nkag mus rau cov teb ncaj qha thiab yuav raug tua hauv O (tus naj npawb ntawm departments).
Cov kev txwv yog dab tsi? Tsuas yog ib yam: xws li ib tug muaj nuj nqi yuav tsum muaj ib tug finite tus naj npawb ntawm input qhov tseem ceeb uas nws tus nqi yog txhais. Txwv tsis pub, nws yuav tsis yooj yim sua kom tsim ib lub rooj uas khaws tag nrho nws cov txiaj ntsig, vim tsis tuaj yeem muaj ib lub rooj nrog cov kab tsis kawg.
Piv Txwv:
employeesCount βΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Ρ Π·Π°ΡΠΏΠ»Π°ΡΠΎΠΉ > Nβ (Department d, NUMERIC[10,2] N) =
GROUP SUM salary(Employee e) IF department(e) = d AND salary(e) > N;
bought 'ΠΡΠΏΠΈΠ»' (Customer c, Product p, INTEGER y) =
GROUP SUM sum(Detail d) IF
customer(order(d)) = c AND
product(d) = p AND
extractYear(date(order(d))) = y MATERIALIZED;
rating 'Π Π΅ΠΉΡΠΈΠ½Π³' (Customer c, Product p, INTEGER y) =
PARTITION SUM 1 ORDER DESC bought(c, p, y), p BY c, y MATERIALIZED;
SELECT contactName(Customer c), name(Product p) WHERE rating(c, p, 1997) < 3;
Lub kaw lus nws tus kheej yuav tsim ib lub rooj nrog hom yuam sij Cov neeg yuav khoom, khoom ΠΈ KEV RAU HAUV, yuav ntxiv ob daim teb rau nws thiab yuav hloov kho cov txiaj ntsig ntawm thaj chaw hauv lawv nrog kev hloov pauv. Thaum hu xov tooj ntxiv rau cov haujlwm no, lawv yuav tsis suav, tab sis qhov tseem ceeb yuav raug nyeem los ntawm cov teb sib xws.
level (Group child, Group parent) = RECURSION 1l IF child IS Group AND parent == child
STEP 2l IF parent == parent($parent);
isParent (Group child, Group parent) = TRUE IF level(child, parent) MATERIALIZED;
Raws li rau kev ua haujlwm yogParent yog cim MATERIALIZED, ces ib lub rooj nrog ob tug yawm sij (paub pawg) yuav raug tsim rau nws, nyob rau hauv uas lub teb yogParent yuav muaj tseeb tsuas yog thawj tus yuam sij yog tus menyuam thib ob. Tus naj npawb ntawm kev nkag rau hauv cov lus no yuav muab sib npaug rau cov pab pawg sib npaug los ntawm qhov nruab nrab qhov tob ntawm tsob ntoo. Yog tias koj xav tau, piv txwv li, suav cov xeeb leej xeeb ntxwv ntawm ib pab pawg, koj tuaj yeem siv txoj haujlwm no:
childrenCount (Group g) = GROUP SUM 1 IF isParent(Group child, g);
CLASS Order 'ΠΠ°ΠΊΠ°Π·';
date 'ΠΠ°ΡΠ°' = DATA DATE (Order);
CLASS OrderDetail 'Π‘ΡΡΠΎΠΊΠ° Π·Π°ΠΊΠ°Π·Π°';
order 'ΠΠ°ΠΊΠ°Π·' = DATA Order (OrderDetail);
date 'ΠΠ°ΡΠ°' (OrderDetail d) = date(order(d)) MATERIALIZED INDEXED;
Thaum hu ua haujlwm hnub rau txoj kab kev txiav txim, daim teb uas muaj qhov ntsuas yuav raug nyeem los ntawm lub rooj nrog cov kab xaj. Thaum qhov kev txiav txim hnub hloov pauv, lub kaw lus nws tus kheej yuav rov xam cov hnub denormalized hauv kab.
zoo
Qhov no tag nrho mechanism yog dab tsi? Hauv DBMSs classic, yam tsis muaj kev sau cov lus nug, tus tsim tawm lossis DBA tsuas tuaj yeem hloov pauv qhov ntsuas, txiav txim siab txheeb cais thiab qhia tus kws npaj cov lus nug yuav ua li cas rau lawv (thiab HINTs tsuas yog muaj nyob rau hauv kev lag luam DBMSs). Txawm hais tias lawv nyuaj npaum li cas los xij, lawv yuav tsis tuaj yeem ua tiav cov lus nug thawj zaug hauv kab lus hauv O (tus naj npawb ntawm department) yam tsis hloov cov lus nug lossis ntxiv cov txiaj ntsig. Hauv cov tswv yim npaj, ntawm theem kev txhim kho koj tsis tas yuav xav txog cov ntaub ntawv khaws cia thiab cov kev sib sau ua ke siv. Tag nrho cov no tuaj yeem hloov tau yooj yim ntawm ya, ncaj qha hauv kev ua haujlwm.
Hauv kev xyaum nws zoo li no. Qee tus neeg tsim cov logic ncaj qha raws li txoj haujlwm ntawm tes. Lawv tsis nkag siab algorithms thiab lawv cov complexity, los yog cov kev npaj ua, los yog hom kev koom tes, los yog lwm yam technical components. Cov neeg no yog cov kws tshuaj ntsuam xyuas kev lag luam ntau dua li cov neeg tsim khoom. Tom qab ntawd, tag nrho cov no mus rau hauv kev sim lossis kev ua haujlwm. Enables loging ntawm cov lus nug ntev. Thaum tshawb pom cov lus nug ntev, tom qab ntawd lwm tus neeg (ntau dua kev - qhov tseem ceeb DBA) txiav txim siab los ua kom MATERIALIZED ntawm qee qhov haujlwm nruab nrab. Qhov no slows cia cov ntaubntawv povthawj siv me ntsis (vim nws yuav tsum tau muab kho dua ib tug ntxiv teb nyob rau hauv kev sib pauv). Txawm li cas los xij, tsis yog tsuas yog cov lus nug no tau nrawm nrawm, tab sis kuj tag nrho lwm tus uas siv cov haujlwm no. Nyob rau tib lub sijhawm, kev txiav txim siab uas ua haujlwm rau materialize yog qhov yooj yim. Ob qhov tsis tseem ceeb: tus naj npawb ntawm qhov muaj peev xwm nkag tau (qhov no yog pes tsawg cov ntaub ntawv yuav nyob rau hauv lub rooj sib tham), thiab ntau npaum li cas nws siv hauv lwm yam haujlwm.
Lawv tsis tuaj yeem muaj GROUPBY clauses los yog aggregates.
Rowis ntawm tag nrho cov rooj nyob rau hauv lub FROM daim ntawv yuav tsum tshwm nyob rau hauv lub SELECT lis query.
Materialized saib cav yuav tsum muaj nyob nrog rowids rau tag nrho cov hauv paus ntxhuav hauv lub FROM lis query.
Koj tsis tuaj yeem tsim kom muaj kev hloov kho sai sai los ntawm ntau lub rooj nrog kev sib koom ua ke yooj yim uas suav nrog cov khoom hom kab hauv SELECT daim ntawv qhia.
Tsis tas li ntawd, txoj kev kho tshiab koj xaiv yuav tsis zoo yog tias:
Lub ntsiab lus nug siv ib qho kev koom nrog sab nraud uas coj zoo li kev koom nrog sab hauv. Yog tias cov lus nug txhais tau muaj xws li kev koom ua ke, xav txog rov sau cov lus nug kom muaj kev koom nrog sab hauv.
cov SELECT daim ntawv teev cov khoom siv pom muaj cov kab lus ntawm kab los ntawm ntau lub rooj.
5.3.8.6 Kev txwv ceev ceev rov qab rau cov ntaub ntawv pom zoo nrog kev sib sau
Kev txhais cov lus nug rau cov ntsiab lus pom nrog kev sib sau los yog koom nrog muaj cov kev txwv hauv qab no rau kev hloov kho sai:
If VARIANCE(expr) or STDDEV(expr) tau teev tseg, COUNT(expr) thiab SUM(expr) yuav tsum tau teev tseg. Oracle pom zoo tias SUM(expr *expr) tau teev tseg.
cov SELECT kem nyob rau hauv lub ntsiab lus nug yuav tsis yog ib tug complex qhia nrog kab los ntawm ntau lub hauv paus ntxhuav. Ib txoj hauv kev ua tau zoo rau qhov no yog siv cov khoom siv zes pom.
cov SELECT daim ntawv yuav tsum muaj tag nrho GROUPBY txhua ntawv.
Kev pom cov khoom siv tsis yog nyob ntawm ib lossis ntau lub rooj nyob deb.
Yog tias koj siv a CHAR hom ntaub ntawv nyob rau hauv lub lim kab ntawm ib materialized saib cav, cov cim teev ntawm tus tswv site thiab cov materialized saib yuav tsum yog tib yam.
Yog hais tias cov khoom pom muaj ib qho ntawm cov hauv qab no, ces ceev refresh yog txaus siab tsuas yog rau cov pa DML inserts thiab ncaj qha loads.
Xws li ib tug materialized saib yog hu ua ib tug insert-tsuas materialized saib.
materialized saib nrog MAX or MIN yog ceev refreshable tom qab rho tawm lossis sib xyaw DML nqe lus yog tias nws tsis muaj WHERE clause.
Qhov max / min ceev refresh tom qab rho tawm lossis sib xyaw DML tsis muaj tus cwj pwm zoo ib yam li cov ntaub ntawv ntxig nkaus xwb. Nws deletes thiab recomputes max / min qhov tseem ceeb rau cov pab pawg cuam tshuam. Koj yuav tsum paub txog nws qhov kev ua tau zoo.
Materialized views nrog lub npe views los yog subqueries nyob rau hauv lub FROM clause tuaj yeem hloov kho sai sai yog qhov kev pom tuaj yeem sib xyaw ua ke. Yog xav paub ntxiv txog qhov twg views yuav sib koom ua ke, saib Oracle Database SQL Language Reference.
Materialized aggregate views nrog cov koom nrog sab nrauv yog ceev refreshable tom qab cov pa DML thiab cov khoom ncaj qha, tsuas yog lub rooj sab nrauv tau hloov kho. Tsis tas li ntawd, cov kev txwv tshwj xeeb yuav tsum muaj nyob rau ntawm cov kab sib koom ntawm lub rooj koom sab hauv. Yog tias muaj kev sib koom ua ke sab nraud, tag nrho cov koom nrog yuav tsum tau txuas nrog ANDs thiab yuav tsum siv qhov sib npaug (=) tus neeg ua haujlwm.
Rau materialized views nrog CUBE, ROLLUP, pawg pawg, lossis kev sib txuas ntawm lawv, cov kev txwv hauv qab no siv tau:
cov SELECT daim ntawv teev npe yuav tsum muaj pab pawg sib txawv uas tuaj yeem yog a GROUPING_ID ua haujlwm rau txhua tus GROUPBY lus los yog GROUPING ua haujlwm ib qho rau txhua tus GROUPBY kev qhia. Piv txwv li, yog tias cov GROUPBY clause ntawm materialized saib yog "GROUPBYCUBE(a, b)", tiam sis SELECT daim ntawv yuav tsum muaj xws li "GROUPING_ID(a, b)Β» los yog Β«GROUPING(a)ANDGROUPING(b)Β» rau qhov materialized saib kom ceev refreshable.
GROUPBY yuav tsum tsis txhob ua rau muaj kev sib tw ua pab pawg. Piv txwv li, "GROUP BY a, ROLLUP(a, b)"Nws tsis tuaj yeem hloov kho sai vim tias nws ua rau cov pab pawg sib npaug"(a), (a, b), AND (a)".
5.3.8.7 Kev txwv ceev ceev rov qab rau cov ntaub ntawv pom zoo nrog UNION ALL
Materialized views nrog lub UNIONALL teeb tus neeg teb xov tooj txhawb nqa lub REFRESHFAST kev xaiv yog tias cov xwm txheej hauv qab no txaus siab:
Lub ntsiab lus nug yuav tsum muaj UNIONALL tus neeg teb xov tooj nyob rau theem sab saum toj.
cov UNIONALL tus neeg teb xov tooj tsis tuaj yeem muab tso rau hauv ib qho lus nug, nrog rau ib qho kev zam: Cov UNIONALL tuaj yeem muaj nyob rau hauv subquery hauv lub FROM clause muab lub ntsiab lus nug yog ntawm daim ntawv SELECT * FROM (saib los yog subquery nrog UNIONALL) raws li hauv qab no piv txwv:
CREATE VIEW view_with_unionall AS (SELECT c.rowid crid, c.cust_id, 2 umarker NTAWM cov neeg muas zaub c.C. C.cust_last_name = 'Smith' UNION TAG NRHO SELECT c.rowid crid, c.cust_id, 3 umarker NTAWM cov neeg muas zaub c.WHERE c.cust 'Jones'); CREATE MATERIALIZED VIEW unionall_inside_view_mv REFRESH NTAWM QHOV TSEEB AS SELECT * LOS NTAWM view_with_unionall;
Nco ntsoov tias qhov kev pom view_with_unionall txaus siab rau qhov yuav tsum tau ua kom nrawm nrawm.
Txhua lo lus nug thaiv hauv lub UNIONALL Cov lus nug yuav tsum ua kom tau raws li qhov yuav tsum tau ua ntawm kev pom sai refreshable materialized saib nrog aggregates lossis ceev refreshable materialized saib nrog koom.
Cov ntaub ntawv pom zoo tsim nyog yuav tsum tau tsim rau ntawm cov ntxhuav raws li qhov xav tau rau hom sib txuas ntawm cov khoom siv ceev ceev refreshable pom.
Nco ntsoov tias Oracle Database kuj tso cai rau cov ntaub ntawv tshwj xeeb ntawm ib lub rooj pom zoo nrog koom nrog tsuas yog muab rau ROWID kem tau suav nrog hauv SELECT daim ntawv teev thiab nyob rau hauv cov materialized saib log. Qhov no yog qhia nyob rau hauv lub ntsiab lus nug ntawm qhov pom view_with_unionall.
cov SELECT daim ntawv teev cov lus nug yuav tsum muaj a UNIONALL marker, thiab UNIONALL kem yuav tsum muaj tus lej tsis tu ncua los yog hlua tus nqi hauv txhua qhov UNIONALL ceg. Tsis tas li ntawd, lub cim kab yuav tsum tshwm nyob rau hauv tib txoj hauj lwm nyob rau hauv lub SELECT cov npe ntawm txhua qhov kev nug block. Saib "UNION ALL Marker thiab Query RewriteΒ» Yog xav paub ntxiv txog UNIONALL tej cim.
Qee qhov nta xws li kev sib koom ua ke sab nrauv, ntxig-tsuas yog cov ntaub ntawv pom cov lus nug thiab cov rooj sib tham tej thaj chaw deb tsis txaus siab rau cov khoom pom zoo nrog UNIONALL. Nco ntsoov, txawm li cas los xij, cov ntsiab lus pom tau siv hauv kev rov ua dua, uas tsis muaj kev sib koom lossis sib sau ua ke, tuaj yeem hloov kho sai sai thaum UNIONALL los yog siv tej thaj chaw deb rooj.
Qhov kev sib haum xeeb pib qhov ntsuas yuav tsum tau teeb tsa rau 9.2.0 lossis siab dua los tsim kom muaj qhov pom tau sai dua tshiab nrog UNIONALL.
Kuv tsis xav ua phem rau Oracle cov kiv cua, tab sis txiav txim los ntawm lawv cov npe ntawm cov kev txwv, nws zoo li tias cov txheej txheem no tau sau tsis yog nyob rau hauv cov ntaub ntawv dav dav, siv qee hom qauv, tab sis los ntawm ntau txhiab tus neeg Khab, qhov twg txhua tus tau muab lub sijhawm rau sau lawv tus kheej ceg, thiab lawv txhua tus ua raws li nws ua tau. Siv cov txheej txheem no rau kev xav tiag tiag zoo li taug kev los ntawm minefield. Koj tuaj yeem tau txais kuv lub sijhawm twg los tau los ntawm kev ntaus ib qho ntawm cov kev txwv tsis meej. Yuav ua li cas nws ua hauj lwm kuj yog ib lo lus nug cais, tab sis nws yog dhau ntawm cov kab lus no.
Microsoft SQL neeg rau zaub mov
Lwm Yam Ntxiv
Ntxiv nrog rau SET cov kev xaiv thiab kev txiav txim siab ua haujlwm, cov kev cai hauv qab no yuav tsum tau ua raws li:
Tus neeg siv ua haujlwm CREATE INDEX yuav tsum yog tus tswv ntawm qhov kev pom.
Thaum koj tsim qhov index, tus IGNORE_DUP_KEY kev xaiv yuav tsum tau teem rau OFF (lub neej ntawd teeb tsa).
Cov lus yuav tsum tau hais los ntawm ob feem npe, schema.npe table nyob rau hauv kev pom txhais.
Tus neeg siv-txhais ua haujlwm hais txog hauv qhov kev pom yuav tsum tau tsim los ntawm kev siv lub WITH SCHEMABINDING kev xaiv.
Txhua tus neeg siv lub luag haujlwm uas tau hais tseg hauv qhov kev pom yuav tsum tau hais los ntawm ob lub npe, ..
Cov ntaub ntawv nkag mus rau cov cuab yeej ntawm tus neeg siv kev ua haujlwm yuav tsum yog NO SQL, thiab cov khoom siv sab nraud yuav tsum yog NO.
Derived table (txhais los ntawm kev qhia a SELECT nqe lus nyob rau hauv FROM clause)
Kev koom nrog tus kheej
Qhia cov kab ke los ntawm kev siv SELECT * or SELECT <table_name>.*
DISTINCT STDEV, STDEVP, VAR, VARP, los yog AVG
Common table expression (CTE)
ntab1, ntawv nyeem, ntext, duab, XML, los yog filestream kab
Subquery OVER clause, uas muaj xws li qeb duas lossis aggregate qhov rais ua haujlwm
Cov ntawv nyeem tag nrho (CONTAINS, FREETEXT) SUM muaj nuj nqi uas hais txog qhov hais tsis tau ORDER BY
CLR tus neeg siv-txhais kev sib sau ua ke TOP CUBE, ROLLUP, los yog GROUPING SETS tswv
MIN, MAX UNION, EXCEPT, los yog INTERSECT tswv TABLESAMPLE
Table variables OUTER APPLY or CROSS APPLY PIVOT, UNPIVOT
Sparse kab teeb
Inline (TVF) lossis multi-statement table-valued functions (MSTVF) OFFSET
CHECKSUM_AGG
1 Cov kev pom indexed tuaj yeem muaj ntab kab; Txawm li cas los xij, cov kab ntawv no tsis tuaj yeem suav nrog hauv pawg ntsuas qhov tseem ceeb.
If GROUP BY tam sim no, VIEW txhais yuav tsum muaj COUNT_BIG(*) thiab yuav tsum tsis muaj HAVING. Cov no GROUP BY Cov kev txwv tsuas yog siv tau rau cov ntsiab lus indexed saib. Cov lus nug tuaj yeem siv qhov ntsuas ntsuas hauv nws txoj kev npaj ua tiav txawm tias nws tsis txaus siab rau cov no GROUP BY txwv.
Yog hais tias saib txhais muaj a GROUP BY clause, tus yuam sij ntawm qhov sib txawv ntawm qhov ntsuas qhov sib txawv tuaj yeem siv tsuas yog cov kab uas tau teev tseg hauv GROUP BY clause.
Nws yog qhov tseeb ntawm no tias cov neeg Khab tsis koom nrog, txij li lawv tau txiav txim siab ua raws li lub tswv yim "peb yuav ua me me, tab sis zoo." Ntawd yog, lawv muaj cov mines ntau dua ntawm thaj teb, tab sis lawv qhov chaw yog pob tshab dua. Qhov kev poob siab tshaj plaws yog qhov kev txwv no:
Derived table (txhais los ntawm kev qhia a SELECT nqe lus nyob rau hauv FROM clause)
Kev koom nrog tus kheej
Qhia cov kab ke los ntawm kev siv SELECT * or SELECT <table_name>.*
DISTINCT STDEV, STDEVP, VAR, VARP, los yog AVG
Common table expression (CTE)
ntab1, ntawv nyeem, ntext, duab, XML, los yog filestream kab
Subquery OVER clause, uas muaj xws li qeb duas lossis aggregate qhov rais ua haujlwm
Cov ntawv nyeem tag nrho (CONTAINS, FREETEXT) SUM muaj nuj nqi uas hais txog qhov hais tsis tau ORDER BY
CLR tus neeg siv-txhais kev sib sau ua ke TOP CUBE, ROLLUP, los yog GROUPING SETS tswv
MIN, MAX UNION, EXCEPT, los yog INTERSECT tswv TABLESAMPLE
Table variables OUTER APPLY or CROSS APPLY PIVOT, UNPIVOT
Sparse kab teeb
Inline (TVF) lossis multi-statement table-valued functions (MSTVF) OFFSET
CHECKSUM_AGG
Kev Koom Tes Sab Nraud, UNION, ORDER BY thiab lwm yam raug txwv. Tej zaum nws yuav yooj yim dua los piav qhia yam twg tuaj yeem siv dua li qhov tsis tuaj yeem siv. Cov npe tej zaum yuav luv dua.
Los xaus: ib qho kev txwv loj loj hauv txhua qhov (cia peb nco txog kev lag luam) DBMS vs tsis muaj (nrog rau kev zam ntawm ib qho laj thawj, tsis yog kev kawm) hauv LGPL thev naus laus zis. Txawm li cas los xij, nws yuav tsum raug sau tseg tias kev siv cov txheej txheem no hauv kev sib raug zoo logic yog qhov nyuaj dua li hauv cov lus piav qhia ua haujlwm.
Kev siv
Nws ua haujlwm li cas? PostgreSQL yog siv los ua "lub tshuab virtual". Muaj ib tug complex algorithm nyob rau hauv uas tsim queries. Ntawm no lub hauv paus. Thiab tsis yog ib pawg loj ntawm heuristics nrog ib pawg ntawm ifs. Yog li, yog tias koj muaj ob peb lub hlis los kawm, koj tuaj yeem sim nkag siab txog architecture.
Nws puas ua haujlwm zoo? Zoo heev. Hmoov tsis, qhov no nyuaj los ua pov thawj. Kuv tsuas tuaj yeem hais tias yog tias koj xav txog ntau txhiab qhov kev thov uas muaj nyob rau hauv daim ntawv thov loj, ces qhov nruab nrab lawv muaj txiaj ntsig zoo dua li cov neeg tsim khoom zoo. Ib tus programmer SQL zoo tuaj yeem sau cov lus nug tau zoo dua, tab sis nrog ib txhiab lus nug nws tsuas yog tsis muaj kev txhawb siab lossis sijhawm ua nws. Qhov tsuas yog qhov kuv tuaj yeem hais tam sim no ua pov thawj ntawm kev ua tau zoo yog tias ntau qhov haujlwm ua haujlwm ntawm lub platform tsim ntawm DBMS no ERP systems, uas muaj ntau txhiab qhov sib txawv MATERIALIZED ua haujlwm, nrog ntau txhiab tus neeg siv thiab cov ntaub ntawv terabyte nrog ntau pua lab cov ntaub ntawv khiav ntawm ob tus neeg ua haujlwm tsis tu ncua. Txawm li cas los xij, leej twg tuaj yeem tshawb xyuas / tsis lees paub qhov ua tau zoo los ntawm kev rub tawm platform thiab PostgreSQL, tig rau logging SQL queries thiab sim hloov cov logic thiab cov ntaub ntawv muaj.
Hauv cov ntawv hauv qab no, kuv tseem yuav tham txog yuav ua li cas koj tuaj yeem teeb tsa kev txwv ntawm kev ua haujlwm, ua haujlwm nrog kev hloov pauv, thiab ntau ntxiv.