Π‘Π°Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ ΠΏΠΈΡˆΡƒΠ²Π° ΠΈ Ρ‡ΠΈΡ‚Π° Π²ΠΎ Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ

Π‘Π°Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ ΠΏΠΈΡˆΡƒΠ²Π° ΠΈ Ρ‡ΠΈΡ‚Π° Π²ΠΎ Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ
Π’ΠΎ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΈΠΎΡ‚ Π§Π»Π΅Π½ Π“ΠΎ опишав ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΡ‚ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π²Ρ€Π· основа Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, намСсто Ρ‚Π°Π±Π΅Π»ΠΈ ΠΈ полиња ΠΊΠ°ΠΊΠΎ Π²ΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½ΠΈΡ‚Π΅ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π”Π°Π΄Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΊΠΎΠΈ Π³ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Π°Ρ‚ прСдноститС Π½Π° овој пристап Π²ΠΎ однос Π½Π° класичниот. ΠœΠ½ΠΎΠ³ΡƒΠΌΠΈΠ½Π° Π³ΠΈ смСтаа Π·Π° Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΡƒΠ±Π΅Π΄Π»ΠΈΠ²ΠΈ.

Π’ΠΎ ΠΎΠ²Π°Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°, ќС ΠΏΠΎΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ овој ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π±Ρ€Π·ΠΎ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ Π΄Π° Π³ΠΈ балансиратС ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ°Ρ‚Π° ΠΈ Ρ‡ΠΈΡ‚Π°ΡšΠ°Ρ‚Π° Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°. Π‘Π»ΠΈΡ‡Π½Π° функционалност сС ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π²ΠΎ соврСмСнитС ΠΊΠΎΠΌΠ΅Ρ€Ρ†ΠΈΡ˜Π°Π»Π½ΠΈ DBMS (особСно Oracle ΠΈ Microsoft SQL Server). На ΠΊΡ€Π°Ρ˜ΠΎΡ‚ ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° ќС ΠΏΠΎΠΊΠ°ΠΆΠ°ΠΌ Π΄Π΅ΠΊΠ° ΠΎΠ½Π° ΡˆΡ‚ΠΎ Ρ‚ΠΈΠ΅ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ˜Π°, Π±Π»Π°Π³ΠΎ ΠΊΠ°ΠΆΠ°Π½ΠΎ, Π½Π΅ успСа ΠΌΠ½ΠΎΠ³Ρƒ Π΄ΠΎΠ±Ρ€ΠΎ.

Опис

Како ΠΈ досСга, Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡšΠ΅ ќС Π³ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°ΠΌ описот со ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ. Π”Π° Ρ€Π΅Ρ‡Π΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° спровСдСмС Π»ΠΎΠ³ΠΈΠΊΠ° која ќС Π²Ρ€Π°Ρ‚ΠΈ список Π½Π° оддСлСнија со Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π²ΠΎ Π½ΠΈΠ² ΠΈ Π½ΠΈΠ²Π½Π°Ρ‚Π° Π²ΠΊΡƒΠΏΠ½Π° ΠΏΠ»Π°Ρ‚Π°.

Π’ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Ρ‚ΠΎΠ° Π±ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°Π»ΠΎ Π²Π°ΠΊΠ°:

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;

SELECT name(Department d), countEmployees(d), salarySum(d);

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΡΡ‚Π° Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ²Π° Π±Π°Ρ€Π°ΡšΠ΅ Π²ΠΎ која Π±ΠΈΠ»ΠΎ DBMS ќС Π±ΠΈΠ΄Π΅ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Π° Π½Π° О (Π±Ρ€ΠΎΡ˜ Π½Π° Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ)бидСјќи ΠΎΠ²Π°Π° прСсмСтка Π±Π°Ρ€Π° ΡΠΊΠ΅Π½ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ†Π΅Π»Π°Ρ‚Π° Ρ‚Π°Π±Π΅Π»Π° Π½Π° Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΈ ΠΏΠΎΡ‚ΠΎΠ° Π½ΠΈΠ²Π½ΠΎ Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎ ΠΎΠ΄Π΄Π΅Π». ЌС ΠΈΠΌΠ° ΠΈ ΠΌΠ°Π» Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊ (Π²Π΅Ρ€ΡƒΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ повСќС Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ оддСлСнија) Π²ΠΎ зависност ΠΎΠ΄ ΠΈΠ·Π±Ρ€Π°Π½ΠΈΠΎΡ‚ ΠΏΠ»Π°Π½ O (Π΄Π½Π΅Π²Π½ΠΈΠΊ Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ) ΠΈΠ»ΠΈ O (Π±Ρ€ΠΎΡ˜ Π½Π° оддСлСнија) Π·Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ΅ ΠΈ сл.

Јасно Π΅ Π΄Π΅ΠΊΠ° Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ DBMS, Π½ΠΎ слоТСноста Π½Π΅ΠΌΠ° Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° кој Π±ΠΈΠ»ΠΎ Π½Π°Ρ‡ΠΈΠ½.

Π’ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π°Ρ‚Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ‚ DBMS ќС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π΅Π΄Π½ΠΎ ΠΏΠΎΠ΄ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅ ΠΊΠΎΠ΅ ќС Π³ΠΈ прСсмСта ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΡ‚Π΅ врСдности Π·Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ‚, Π° ΠΏΠΎΡ‚ΠΎΠ° ќС Π½Π°ΠΏΡ€Π°Π²ΠΈ JOIN со Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° Π½Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ‚ Π·Π° Π΄Π° Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ΅ ΠΈΠΌΠ΅Ρ‚ΠΎ. ΠœΠ΅Ρ“ΡƒΡ‚ΠΎΠ°, Π·Π° сСкоја Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°, ΠΏΡ€ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°ΡšΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС постави посСбСн ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€. БистСмот автоматски ќС создадС соодвСтно ΠΏΠΎΠ»Π΅ Π·Π° сСкоја Ρ‚Π°ΠΊΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° врСдноста Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°, врСдноста Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ исто Ρ‚Π°ΠΊΠ° ќС сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ истата Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°. ΠŸΡ€ΠΈ пристап Π΄ΠΎ ΠΎΠ²Π°Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°, ќС сС пристапи Π΄ΠΎ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ прСсмСтаното ΠΏΠΎΠ»Π΅.

ОсобСно, Π°ΠΊΠΎ поставитС MATERIALIZED Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ€ΠΎΠΈΠ’Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΈ ΠΏΠ»Π°Ρ‚Π° Π—Π±ΠΈΡ€, ΠΏΠΎΡ‚ΠΎΠ° Π²ΠΎ Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° со списокот оддСлСнија ќС сС Π΄ΠΎΠ΄Π°Π΄Π°Ρ‚ Π΄Π²Π΅ полиња Π²ΠΎ ΠΊΠΎΠΈ ќС сС Π·Π°Ρ‡ΡƒΠ²Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΈ Π½ΠΈΠ²Π½Π°Ρ‚Π° Π²ΠΊΡƒΠΏΠ½Π° ΠΏΠ»Π°Ρ‚Π°. БСкогаш ΠΊΠΎΠ³Π° ќС дојдС Π΄ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈΡ‚Π΅, Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚ΠΈ ΠΈΠ»ΠΈ припадности Π½Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ‚, систСмот автоматски ќС Π³ΠΈ ΠΌΠ΅Π½ΡƒΠ²Π° врСдноститС Π½Π° ΠΎΠ²ΠΈΠ΅ полиња. Π“ΠΎΡ€Π΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ќС пристапи Π΄ΠΎ ΠΎΠ²ΠΈΠ΅ полиња ΠΈ ќС сС ΠΈΠ·Π²Ρ€ΡˆΠΈ Π²ΠΎ O (Π±Ρ€ΠΎΡ˜ Π½Π° оддСлСнија).

Кои сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°Ρ‚Π°? Π‘Π°ΠΌΠΎ Π΅Π΄Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°: Ρ‚Π°ΠΊΠ²Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° ΠΌΠΎΡ€Π° Π΄Π° ΠΈΠΌΠ° ΠΊΠΎΠ½Π΅Ρ‡Π΅Π½ Π±Ρ€ΠΎΡ˜ Π½Π° Π²Π»Π΅Π·Π½ΠΈ врСдности Π·Π° ΠΊΠΎΠΈ Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° Π½Π΅Ρ˜Π·ΠΈΠ½Π°Ρ‚Π° врСдност. Π’ΠΎ спротивно, ќС Π±ΠΈΠ΄Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ Ρ‚Π°Π±Π΅Π»Π° ΡˆΡ‚ΠΎ Π³ΠΈ складира ситС нСјзини врСдности, бидСјќи Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Ρ‚Π°Π±Π΅Π»Π° со бСсконСчСн Π±Ρ€ΠΎΡ˜ Ρ€Π΅Π΄ΠΎΠ²ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

employeesCount β€˜ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΎΠ² Ρ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚ΠΎΠΉ > N’ (Department d, NUMERIC[10,2] N) = 
    GROUP SUM salary(Employee e) IF department(e) = d AND salary(e) > N;

Оваа Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° Π·Π° бСсконСчСн Π±Ρ€ΠΎΡ˜ врСдности ΠΎΠ΄ N (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сСкоја Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Π° врСдност Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½Π°). Π—Π°Ρ‚ΠΎΠ°, Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ставитС ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠΠž. Π—Π½Π°Ρ‡ΠΈ, ΠΎΠ²Π° Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅, Π° Π½Π΅ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΎ (односно, Π½Π΅ Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° Π³ΠΎ спровСдСмС). Π’ΠΎ спротивно, Π½Π΅ΠΌΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° користитС Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ°, ΡΠΎΡ€Ρ‚ΠΈΡ€Π°ΡšΠ΅, И ΠΈ Π˜Π›Π˜, ΠŸΠžΠ”Π•Π›Π‘Π, Ρ€Π΅ΠΊΡƒΡ€Π·ΠΈΡ˜Π° ΠΈΡ‚Π½.

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ 2.2 ΠΎΠ΄ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ставитС ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠΠž Π½Π° Π΄Π²Π΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

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;

Π‘Π°ΠΌΠΈΠΎΡ‚ систСм ќС создадС Π΅Π΄Π½Π° Ρ‚Π°Π±Π΅Π»Π° со ΠΊΠΎΠΏΡ‡ΠΈΡšΠ° Π·Π° Ρ‚ΠΈΠΏ ΠšΠ»ΠΈΠ΅Π½Ρ‚, ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ ΠΈ Π¦Π•Π› Π‘Π ΠžΠˆ, ќС Π΄ΠΎΠ΄Π°Π΄Π΅ Π΄Π²Π΅ полиња Π½Π° Π½Π΅Π³ΠΎ ΠΈ ќС Π³ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π° врСдноститС Π½Π° ΠΏΠΎΠ»ΠΈΡšΠ°Ρ‚Π° Π²ΠΎ Π½ΠΈΠ² со ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. Кога ќС сС Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π΄ΠΎ ΠΎΠ²ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΈΠ΅ Π½Π΅ΠΌΠ° Π΄Π° сС прСсмСтуваат, Ρ‚ΡƒΠΊΡƒ врСдноститС ќС сС Ρ‡ΠΈΡ‚Π°Π°Ρ‚ ΠΎΠ΄ соодвСтнитС полиња.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ овој ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° сС ослободитС ΠΎΠ΄ Ρ€Π΅ΠΊΡƒΡ€Π·ΠΈΠΈ (CTE) Π²ΠΎ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π°. ПосСбно, Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ˜Ρ‚Π΅ Π³ΠΈ Π³Ρ€ΡƒΠΏΠΈΡ‚Π΅ ΠΊΠΎΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π°Ρ‚ Π΄Ρ€Π²ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ односот Π΄Π΅Ρ‚Π΅/Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π» (сСкоја Π³Ρ€ΡƒΠΏΠ° ΠΈΠΌΠ° врска Π΄ΠΎ ΡΠ²ΠΎΡ˜ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»):

parent = DATA Group (Group);

Π’ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π΅ΠΊΡƒΡ€Π·ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Π²Π΅Π΄Π΅ Π½Π° слСдниов Π½Π°Ρ‡ΠΈΠ½:

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;

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π΅ Π ΠΎΠ΄ΠΈΡ‚Π΅Π» сС ΠΎΠ·Π½Π°Ρ‡ΡƒΠ²Π° ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠΠž, ΠΏΠΎΡ‚ΠΎΠ° Π·Π° Π½Π΅Π° ќС сС ΠΊΡ€Π΅ΠΈΡ€Π° Ρ‚Π°Π±Π΅Π»Π° со Π΄Π²Π° ΠΊΠ»ΡƒΡ‡Π° (Π³Ρ€ΡƒΠΏΠΈ) Π²ΠΎ која ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π΅ Π ΠΎΠ΄ΠΈΡ‚Π΅Π» ќС Π±ΠΈΠ΄Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ само Π°ΠΊΠΎ ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΊΠ»ΡƒΡ‡ Π΅ Π΄Π΅Ρ‚Π΅ Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚. Π‘Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° записи Π²ΠΎ ΠΎΠ²Π°Π° Ρ‚Π°Π±Π΅Π»Π° ќС Π±ΠΈΠ΄Π΅ Π΅Π΄Π½Π°ΠΊΠΎΠ² Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π³Ρ€ΡƒΠΏΠΈ ΠΏΠΎΠΌΠ½ΠΎΠΆΠ΅Π½ со просСчната Π΄Π»Π°Π±ΠΎΡ‡ΠΈΠ½Π° Π½Π° Π΄Ρ€Π²ΠΎΡ‚ΠΎ. Ако Π²ΠΈ Ρ‚Ρ€Π΅Π±Π°, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° Π³ΠΎ Π±Ρ€ΠΎΠΈΡ‚Π΅ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΠΎΡ‚ΠΎΠΌΡ†ΠΈ Π½Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° Π³Ρ€ΡƒΠΏΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја користитС ΠΎΠ²Π°Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°:

childrenCount (Group g) = GROUP SUM 1 IF isParent(Group child, g);

НСма Π΄Π° ΠΈΠΌΠ° CTE Π²ΠΎ Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ SQL. НамСсто Ρ‚ΠΎΠ° ќС ΠΈΠΌΠ° Сдноставна GROUP BY.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ овој ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ лСсно Π΄Π° ја Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ:

CLASS Order 'Π—Π°ΠΊΠ°Π·';
date 'Π”Π°Ρ‚Π°' = DATA DATE (Order);

CLASS OrderDetail 'Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π·Π°ΠΊΠ°Π·Π°';
order 'Π—Π°ΠΊΠ°Π·' = DATA Order (OrderDetail);
date 'Π”Π°Ρ‚Π°' (OrderDetail d) = date(order(d)) MATERIALIZED INDEXED;

Кога ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° Π΄Π°Ρ‚ΡƒΠΌ Π·Π° Ρ€Π΅Π΄ΠΎΡ‚ Π·Π° Π½Π°Ρ€Π°Ρ‡ΠΊΠΈ, ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π·Π° ΠΊΠΎΠ΅ ΠΈΠΌΠ° индСкс ќС сС Ρ‡ΠΈΡ‚Π° ΠΎΠ΄ Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° со Π»ΠΈΠ½ΠΈΠΈ Π·Π° Π½Π°Ρ€Π°Ρ‡ΠΊΠΈ. Кога ќС сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π΄Π°Ρ‚ΡƒΠΌΠΎΡ‚ Π½Π° Π½Π°Ρ€Π°Ρ‡ΠΊΠ°Ρ‚Π°, самиот систСм автоматски ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ќС Π³ΠΎ прСсмСта Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ Π΄Π°Ρ‚ΡƒΠΌ Π²ΠΎ Π»ΠΈΠ½ΠΈΡ˜Π°Ρ‚Π°.

ΠŸΡ€Π΅Π΄Π½ΠΎΡΡ‚ΠΈ

Π—Π° ΡˆΡ‚ΠΎ слуТи Ρ†Π΅Π»ΠΈΠΎΡ‚ овој ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ? Π’ΠΎ класичнитС DBMS, Π±Π΅Π· ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€Π°ΡˆΠ°ΡšΠ°, Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ ΠΈΠ»ΠΈ DBA ΠΌΠΎΠΆΠ΅ само Π΄Π° ΠΌΠ΅Π½ΡƒΠ²Π° индСкси, Π΄Π° ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° статистика ΠΈ Π΄Π° ΠΌΡƒ ΠΊΠ°ΠΆΠ΅ Π½Π° ΠΏΠ»Π°Π½Π΅Ρ€ΠΎΡ‚ Π·Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠΈ (Π° HINTs сС достапни само Π²ΠΎ ΠΊΠΎΠΌΠ΅Ρ€Ρ†ΠΈΡ˜Π°Π»Π½ΠΈΡ‚Π΅ DBMS). ΠšΠΎΠ»ΠΊΡƒ ΠΈ Π΄Π° сС Ρ‚Ρ€ΡƒΠ΄Π°Ρ‚, Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π³ΠΎ Π·Π°Π²Ρ€ΡˆΠ°Ρ‚ ΠΏΡ€Π²ΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π²ΠΎ написот Π²ΠΎ O (Π±Ρ€ΠΎΡ˜ Π½Π° оддСлСнија) Π±Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠΈΠ»ΠΈ додавањС ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π°Ρ‡ΠΈ. Π’ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π°Ρ‚Π° шСма, Π²ΠΎ Ρ„Π°Π·Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° размислуватС Π·Π° структурата Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ ΠΊΠΎΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ Π΄Π° Π³ΠΈ користитС. Π‘Π΅Ρ‚ΠΎ ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° сС смСни Π²ΠΎ Π»Π΅Ρ‚, Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°.

Π’ΠΎ пракса Ρ‚ΠΎΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°. НСкои Π»ΡƒΡ“Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π°Ρ‚ Π»ΠΎΠ³ΠΈΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ заснована Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΡˆΡ‚ΠΎ ја ΠΈΠΌΠ°Π°Ρ‚. Π’ΠΈΠ΅ Π½Π΅ Π³ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π°Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‚Π΅ ΠΈ Π½ΠΈΠ²Π½Π°Ρ‚Π° слоТСност, ΠΏΠ»Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅, Π²ΠΈΠ΄ΠΎΠ²ΠΈΡ‚Π΅ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ° ΠΈΠ»ΠΈ која Π±ΠΈΠ»ΠΎ Π΄Ρ€ΡƒΠ³Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ОвиС Π»ΡƒΡ“Π΅ сС повСќС Π΄Π΅Π»ΠΎΠ²Π½ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π°Ρ€ΠΈ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ. ΠŸΠΎΡ‚ΠΎΠ°, сСто ΠΎΠ²Π° ΠΎΠ΄ΠΈ Π²ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°. ΠžΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄ΠΎΠ»Π³ΠΎΡ‚Ρ€Π°Ρ˜Π½ΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ°. Кога ќС сС ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΎ Π±Π°Ρ€Π°ΡšΠ΅, Ρ‚ΠΎΠ³Π°Ρˆ Π΄Ρ€ΡƒΠ³ΠΈ Π»ΡƒΡ“Π΅ (ΠΏΠΎΡ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈ - Π²ΠΎ ΡΡƒΡˆΡ‚ΠΈΠ½Π° DBA) ΠΎΠ΄Π»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ°Ρ‚ ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠΠž Π½Π° нСкоја срСдна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. Ова ΠΌΠ°Π»ΠΊΡƒ Π³ΠΎ успорува ΡΠ½ΠΈΠΌΠ°ΡšΠ΅Ρ‚ΠΎ (бидСјќи Π±Π°Ρ€Π° Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ»Π΅ Π²ΠΎ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°). Π‘Π΅ΠΏΠ°ΠΊ, Π½Π΅ само ΠΎΠ²Π° Π±Π°Ρ€Π°ΡšΠ΅ Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π±Ρ€Π·Π°Π½ΠΎ, Ρ‚ΡƒΠΊΡƒ ΠΈ ситС Π΄Ρ€ΡƒΠ³ΠΈ ΡˆΡ‚ΠΎ ја користат ΠΎΠ²Π°Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, ΠΎΠ΄Π»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ која Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° Π΄Π° сС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π° Π΅ Ρ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½ΠΎ лСсно. Π”Π²Π° Π³Π»Π°Π²Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ: Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΌΠΎΠΆΠ½ΠΈ Π²Π»Π΅Π·Π½ΠΈ врСдности (ΠΎΠ²Π° Π΅ ΠΊΠΎΠ»ΠΊΡƒ записи ќС ΠΈΠΌΠ° Π²ΠΎ соодвСтната Ρ‚Π°Π±Π΅Π»Π°) ΠΈ ΠΊΠΎΠ»ΠΊΡƒ чСсто сС користи Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Аналози

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ΅Ρ€Ρ†ΠΈΡ˜Π°Π»Π½ΠΈ DBMS ΠΈΠΌΠ°Π°Ρ‚ слични ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ: ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠ ΠŸΠžΠ“Π›Π•Π” со Π‘Π Π—Πž ΠžΠ‘Π’Π•Π–Π£Π’ΠΠŠΠ• (Oracle) ΠΈ Π˜ΠΠ”Π•ΠšΠ‘Π˜Π ΠΠ ΠŸΠžΠ“Π›Π•Π” (Microsoft SQL Server). Π’ΠΎ PostgreSQL, MATERIALIZED VIEW Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π°ΠΆΡƒΡ€ΠΈΡ€Π° Π²ΠΎ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°, Ρ‚ΡƒΠΊΡƒ само Π½Π° Π±Π°Ρ€Π°ΡšΠ΅ (ΠΏΠ° Π΄ΡƒΡ€ΠΈ ΠΈ со ΠΌΠ½ΠΎΠ³Ρƒ строги ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°), ΠΏΠ° Π·Π°Ρ‚ΠΎΠ° Π½Π΅ Π³ΠΎ Ρ€Π°Π·Π³Π»Π΅Π΄ΡƒΠ²Π°ΠΌΠ΅. Но, Ρ‚ΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ‚ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠΎΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ја ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°Π°Ρ‚ Π½ΠΈΠ²Π½Π°Ρ‚Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.

ΠŸΡ€Π²ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° само Π°ΠΊΠΎ вСќС стС создалС Ρ€Π΅Π΄ΠΎΠ²Π΅Π½ VIEW. Π’ΠΎ спротивно, ќС ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΈ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ прСостанатитС Π±Π°Ρ€Π°ΡšΠ° Π·Π° пристап Π΄ΠΎ новосоздадСниот ΠΏΡ€ΠΈΠΊΠ°Π· Π·Π° Π΄Π° ја користитС ΠΎΠ²Π°Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°. Или оставСтС сè ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅, Π½ΠΎ Ρ‚ΠΎΠ° ќС Π±ΠΈΠ΄Π΅ Π±Π°Ρ€Π΅ΠΌ нССфикасно Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ вСќС ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ прСсмСтани ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π½ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π½Π΅ сСкогаш Π³ΠΈ користат, Ρ‚ΡƒΠΊΡƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π³ΠΈ прСсмСтуваат.

Π’Ρ‚ΠΎΡ€ΠΎ, Ρ‚ΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ Π±Ρ€ΠΎΡ˜ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°:

Oracle

5.3.8.4 ΠžΠΏΡˆΡ‚ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅

Π”Π΅Ρ„ΠΈΠ½ΠΈΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΠΎΠ³Π»Π΅Π΄ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Π½Π° слСдниов Π½Π°Ρ‡ΠΈΠ½:

  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· Π½Π΅ смСС Π΄Π° содрТи Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈ Π·Π° ΠΈΠ·Ρ€Π°Π·ΠΈ ΡˆΡ‚ΠΎ Π½Π΅ сС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°Π°Ρ‚ ΠΊΠ°ΠΊΠΎ SYSDATE ROWNUM.
  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΠΎΠ³Π»Π΅Π΄ Π½Π΅ смСС Π΄Π° содрТи Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈ Π·Π° RAW or LONG RAW Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π° SELECT листа ΠΏΠΎΠ΄ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RANK) Π²ΠΎ SELECT ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° ΡƒΠΏΠ°Ρ‚ΡƒΠ²Π° Π½Π° Ρ‚Π°Π±Π΅Π»Π° Π½Π° која XMLIndex сС Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° индСкс.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π° MODEL ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π° HAVING ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π° со ΠΏΠΎΠ΄ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π²Π³Π½Π΅Π·Π΄Π΅Π½ΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΡˆΡ‚ΠΎ ΠΈΠΌΠ°Π°Ρ‚ ANY, ALLΠΈΠ»ΠΈ NOT EXISTS.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π° [START WITH …] CONNECT BY ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°.
  • НС ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи повСќС Ρ‚Π°Π±Π΅Π»ΠΈ со Π΄Π΅Ρ‚Π°Π»ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ.
  • ON COMMIT ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ΠΈΠΌΠ°Π°Ρ‚ Ρ‚Π°Π±Π΅Π»ΠΈ со далСчински Π΄Π΅Ρ‚Π°Π»ΠΈ.
  • Π’Π³Π½Π΅Π·Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΠΌΠΎΡ€Π° Π΄Π° ΠΈΠΌΠ°Π°Ρ‚ спој ΠΈΠ»ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚.
  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π·Π΄Ρ€ΡƒΠΆΠ΅Π½ΠΈ ставови ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π·Π±ΠΈΡ€Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ со Π° GROUP BY ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ ΠΎΠ΄ Ρ‚Π°Π±Π΅Π»Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π° со индСкс.

5.3.8.5 ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ само со ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ°

Π”Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Ρ€Π°ΡšΠ° Π·Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΈ само со ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ° ΠΈ Π±Π΅Π· Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ Π³ΠΈ ΠΈΠΌΠ° слСднитС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅:

  • Π‘ΠΈΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° ΠΎΠ΄ Β«ΠžΠΏΡˆΡ‚ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅".
  • Π’ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ΠΈΠΌΠ°Π°Ρ‚ GROUP BY ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ.
  • Π Π΅Π΄ΠΎΠ²ΠΈ ΠΎΠ΄ ситС Ρ‚Π°Π±Π΅Π»ΠΈ Π²ΠΎ FROM списокот ΠΌΠΎΡ€Π° Π΄Π° сС појави Π²ΠΎ SELECT список Π½Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ.
  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΈΠΊΠ°Π· ΠΌΠΎΡ€Π° Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ со Ρ€Π΅Π΄ΠΎΠ²ΠΈ Π·Π° ситС основни Ρ‚Π°Π±Π΅Π»ΠΈ Π²ΠΎ FROM список Π½Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ.
  • НС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€ΠΈΠΊΠ°Π· со Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ повСќС Ρ‚Π°Π±Π΅Π»ΠΈ со Сдноставни ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ° ΠΊΠΎΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ ΠΊΠΎΠ»ΠΎΠ½Π° ΠΎΠ΄ Ρ‚ΠΈΠΏ Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ Π²ΠΎ SELECT изјава.

Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ Π½Π° ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ ќС Π³ΠΎ ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ СфикасСн Π°ΠΊΠΎ:

  • Π”Π΅Ρ„ΠΈΠ½ΠΈΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ користи Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ спој кој сС однСсува ΠΊΠ°ΠΊΠΎ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ΅Π½ спој. Ако Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‡ΠΊΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ содрТи Ρ‚Π°ΠΊΠ²ΠΎ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅, размислСтС Π΄Π° Π³ΠΎ ΠΏΡ€Π΅ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‡ΠΊΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π·Π° Π΄Π° содрТи Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ΅Π½ спој.
  • Π½Π° SELECT списокот Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· содрТи ΠΈΠ·Ρ€Π°Π·ΠΈ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ повСќС Ρ‚Π°Π±Π΅Π»ΠΈ.

5.3.8.6 ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ со Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ

Π”Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Ρ€Π°ΡšΠ° Π·Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΈ со Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ ΠΈΠ»ΠΈ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ° Π³ΠΈ ΠΈΠΌΠ°Π°Ρ‚ слСднитС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅:

Π‘Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΎ ΠΈ Π·Π° Π΄Π²Π΅Ρ‚Π΅ ON COMMIT ON DEMAND ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ставови, Π½ΠΎ сС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ слСднитС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°:

  • Π‘ΠΈΡ‚Π΅ Ρ‚Π°Π±Π΅Π»ΠΈ Π²ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· ΠΌΠΎΡ€Π° Π΄Π° ΠΈΠΌΠ°Π°Ρ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΈΠΊΠ°Π·, Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΈΠΊΠ°Π· ΠΌΠΎΡ€Π°:
    • Π“ΠΈ содрТи ситС ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π·.
    • НавСдСтС со ROWID INCLUDING NEW VALUES.
    • ΠžΠ΄Ρ€Π΅Π΄Π΅Ρ‚Π΅ Π³ΠΎ SEQUENCE ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π° Π°ΠΊΠΎ сС ΠΎΡ‡Π΅ΠΊΡƒΠ²Π° Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° Π΄Π° ΠΈΠΌΠ° мСшавина ΠΎΠ΄ Π²ΠΌΠ΅Ρ‚Π½ΡƒΠ²Π°ΡšΠ°/Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ°, Π±Ρ€ΠΈΡˆΠ΅ΡšΠ° ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ°.

  • Π‘Π°ΠΌΠΎ SUM, COUNT, AVG, STDDEV, VARIANCE, MIN MAX сС ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅.
  • COUNT(*) ΠΌΠΎΡ€Π° Π΄Π° сС Π½Π°Π²Π΅Π΄Π΅.
  • АгрСгатнитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΡ€Π° Π΄Π° сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ само ΠΊΠ°ΠΊΠΎ Π½Π°Ρ˜ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ Π΄Π΅Π» ΠΎΠ΄ ΠΈΠ·Ρ€Π°Π·ΠΎΡ‚. Односно, Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС AVG(AVG(x)) or AVG(x)+ AVG(x) Π½Π΅ сС Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈ.
  • Π—Π° сСкој Π°Π³Ρ€Π΅Π³Π°Ρ‚ ΠΊΠ°ΠΊΠΎ Π½Π° ΠΏΡ€ AVG(expr), соодвСтнитС COUNT(expr) ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ присутни. Oracle Π³ΠΎ ΠΏΡ€Π΅ΠΏΠΎΡ€Π°Ρ‡ΡƒΠ²Π° Ρ‚ΠΎΠ° SUM(expr) Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ.
  • If VARIANCE(expr) or STDDEV(expr) Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎ, COUNT(expr) SUM(expr) ΠΌΠΎΡ€Π° Π΄Π° сС Π½Π°Π²Π΅Π΄Π΅. Oracle Π³ΠΎ ΠΏΡ€Π΅ΠΏΠΎΡ€Π°Ρ‡ΡƒΠ²Π° Ρ‚ΠΎΠ° SUM(expr *expr) Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ.
  • Π½Π° SELECT ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π° Π²ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‡ΠΊΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ слоТСн ΠΈΠ·Ρ€Π°Π· со ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ повСќС Π±Π°Π·Π½ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ. МоТно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΠ²Π° Π΅ Π΄Π° сС користи Π²Π³Π½Π΅Π·Π΄Π΅Π½ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎΠ³Π»Π΅Π΄.
  • Π½Π° SELECT списокот ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΈ содрТи ситС GROUP BY ΠΊΠΎΠ»ΠΎΠ½ΠΈ.
  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· Π½Π΅ сС заснова Π½Π° Π΅Π΄Π½Π° ΠΈΠ»ΠΈ повСќС ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ.
  • Ако користитС CHAR Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ‚ Π·Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄, мноТСствата Π½Π° Π·Π½Π°Ρ†ΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ‚ ΡΠ°Ρ˜Ρ‚ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ исти.
  • Ако ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ ΠΎΠ΄ слСднивС, Ρ‚ΠΎΠ³Π°Ρˆ Π±Ρ€Π·ΠΎΡ‚ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΎ само Π½Π° ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ DML инсСрти ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ°.
    • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ставови со MIN or MAX Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ
    • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ставови ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ‚ SUM(expr) Π½ΠΎ Π½Π΅ COUNT(expr)
    • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ставови Π±Π΅Π· COUNT(*)

    Π’Π°ΠΊΠ²ΠΈΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ само Π·Π° Π²ΠΌΠ΅Ρ‚Π½ΡƒΠ²Π°ΡšΠ΅.

  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ со MAX or MIN Π±Ρ€Π·ΠΎ сС освСТува ΠΏΠΎ Π±Ρ€ΠΈΡˆΠ΅ΡšΠ΅ ΠΈΠ»ΠΈ измСшани DML изјави Π°ΠΊΠΎ Π½Π΅ΠΌΠ° a WHERE ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°.
    ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ/ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΎ Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎ Π±Ρ€ΠΈΡˆΠ΅ΡšΠ΅ ΠΈΠ»ΠΈ измСшано DML Π³ΠΎ Π½Π΅ΠΌΠ° истото ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΠΊΠ°ΠΊΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ΠΎΡ‚ само Π·Π° Π²ΠΌΠ΅Ρ‚Π½ΡƒΠ²Π°ΡšΠ΅. Π“ΠΈ Π±Ρ€ΠΈΡˆΠ΅ ΠΈ прСсмСтува максималнитС/ΠΌΠΈΠ½. врСдности Π·Π° ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ΠΈΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΈ. Π’Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅Ρ‚Π΅ свСсни Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ влијаниС Π²Ρ€Π· пСрформанситС.
  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ со ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ставови ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π²ΠΎ FROM ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π±Ρ€Π·ΠΎ Π΄Π° сС освСТи ΠΏΠΎΠ΄ услов ΠΏΠΎΠ³Π»Π΅Π΄ΠΈΡ‚Π΅ цСлосно Π΄Π° сС ΡΠΏΠΎΡ˜Π°Ρ‚. Π—Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΎΠ° ΠΊΠΎΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ќС сС ΡΠΏΠΎΡ˜Π°Ρ‚, Π²ΠΈΠ΄Π΅Ρ‚Π΅ Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†Π° Π·Π° јазик Π½Π° Oracle Database SQL.
  • Ако Π½Π΅ΠΌΠ° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ сСлСкции ΠΈ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ° Π²ΠΎ WHERE ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°.
  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π·Π±ΠΈΡ€Π½ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΈ со Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ ΡΠΏΠΎΡ˜Π½ΠΈΡ†ΠΈ Π±Ρ€Π·ΠΎ сС освСТуваат ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ DML ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ°, ΠΏΠΎΠ΄ услов само Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½Π°Ρ‚Π° Ρ‚Π°Π±Π΅Π»Π° Π΄Π° Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Ρ‚Π°. Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΌΠΎΡ€Π° Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Ρ‚Π½ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π½Π° ΡΠΏΠΎΡ˜Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π½Π° Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° Π·Π° Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΎ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅. Ако ΠΈΠΌΠ° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ спојки, ситС спојки ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со ANDΠΈ ΠΌΠΎΡ€Π° Π΄Π° ја користи Сднаквоста (=) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.
  • Π—Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ставови со CUBE, ROLLUP, Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ΅ мноТСства ΠΈΠ»ΠΈ Π½ΠΈΠ²Π½ΠΎ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅, сС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ слСднивС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°:
    • Π½Π° SELECT списокот Ρ‚Ρ€Π΅Π±Π° Π΄Π° содрТи Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅ Π·Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ΅ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΠ»ΠΈ a GROUPING_ID Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π°Ρ‚ Π½Π° ситС GROUP BY ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΈΠ»ΠΈ GROUPING Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π΅Π΄Π½Π° Π·Π° сСкој GROUP BY ΠΈΠ·Ρ€Π°Π·ΡƒΠ²Π°ΡšΠ΅. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ Π½Π° GROUP BY ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π° ΠΎΠ΄ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ став Π΅ β€žGROUP BY CUBE(a, b)β€œ, ΠΏΠΎΡ‚ΠΎΠ° Π½Π° SELECT списокот Ρ‚Ρ€Π΅Π±Π° Π΄Π° содрТи ΠΈΠ»ΠΈ β€žGROUPING_ID(a, b)Β» ΠΈΠ»ΠΈ Β«GROUPING(a) AND GROUPING(b)Β» Π·Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΠΎΠ³Π»Π΅Π΄ Π±Ρ€Π·ΠΎ Π΄Π° сС освСТува.
    • GROUP BY Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π° со Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚ Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "GROUP BY a, ROLLUP(a, b)β€žΠΠ΅ сС освСТува Π±Ρ€Π·ΠΎ бидСјќи Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π° со Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚ Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ°β€œ(a), (a, b), AND (a)".

5.3.8.7 ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ со UNION ALL

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ставови со UNION ALL Π²ΠΎ собата ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° REFRESH FAST ΠΎΠΏΡ†ΠΈΡ˜Π° Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ сС исполнСти слСднитС услови:

  • Π”Π΅Ρ„ΠΈΠ½ΠΈΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΎ ΠΈΠΌΠ° UNION ALL ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° највисоко Π½ΠΈΠ²ΠΎ.

    Π½Π° UNION ALL ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²Π³Ρ€Π°Π΄Π΅Π½ Π²ΠΎ ΠΏΠΎΠ΄ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅, со Π΅Π΄Π΅Π½ исклучок: The UNION ALL ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎ ΠΏΠΎΠ΄ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅ Π²ΠΎ FROM ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π° ΠΏΠΎΠ΄ услов Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‡ΠΊΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ° SELECT * FROM (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅ со UNION ALL) ΠΊΠ°ΠΊΠΎ Π²ΠΎ слСдниот ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    ΠšΠ Π•Π˜Π ΠΠˆ ΠŸΠžΠ“Π›Π•Π” view_with_unionall AS
    (Π˜Π—Π‘Π•Π Π•Π’Π• c.rowid crid, c.cust_id, 2 umarker
     ΠžΠ” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π² ΠšΠΠ”Π• c.cust_last_name = 'Π‘ΠΌΠΈΡ‚'
     УНИЈА Π‘Π˜Π’Π•
     SELECT c.rowid crid, c.cust_id, 3 umarker
     ΠžΠ” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π² ΠšΠΠ”Π• c.cust_last_name = 'Џонс');
    
    Π‘ΠžΠ—Π”ΠΠ”Π•Π’Π• ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠ ΠŸΠžΠ“Π›Π•Π” unionall_inside_view_mv
    ΠžΠ‘Π’Π•Π–Π£Π’ΠΠˆ Π‘Π Π—Πž НА Π‘ΠΠ ΠΠŠΠ• КАКО
    Π˜Π—Π‘Π•Π Π˜ * ΠžΠ” ΠΏΠΎΠ³Π»Π΅Π΄_со_ΡƒΠ½ΠΈΠΎΠ½-ситС;
    

    Π—Π°Π±Π΅Π»Π΅ΠΆΠ΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΠ³Π»Π΅Π΄ΠΎΡ‚ view_with_unionall Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡƒΠ²Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅.

  • БСкој Π±Π»ΠΎΠΊ Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ UNION ALL Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΠΈ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° Π±Ρ€Π·ΠΎ освСТувачки ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€ΠΈΠΊΠ°Π· со Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ ΠΈΠ»ΠΈ Π±Ρ€Π·ΠΎ освСТувачки ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€ΠΈΠΊΠ°Π· со ΡΠΏΠΎΡ˜Π½ΠΈΡ†ΠΈ.

    Π‘ΠΎΠΎΠ΄Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΌΠΎΡ€Π° Π΄Π° сС ΠΊΡ€Π΅ΠΈΡ€Π°Π°Ρ‚ Π½Π° Ρ‚Π°Π±Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Π±Π°Ρ€Π° Π·Π° соодвСтниот Ρ‚ΠΈΠΏ Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€ΠΈΠΊΠ°Π· со Π±Ρ€Π·ΠΎ ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅.
    Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌ Π΄Π΅ΠΊΠ° Oracle Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, исто Ρ‚Π°ΠΊΠ°, Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π° посСбСн ΡΠ»ΡƒΡ‡Π°Ρ˜ Π½Π° Π΅Π΄Π½Π° Ρ‚Π°Π±Π΅Π»Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎΠ³Π»Π΅Π΄ со ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ° само ΠΏΠΎΠ΄ услов ROWID ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π° Π΅ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½Π° Π²ΠΎ SELECT список ΠΈ Π²ΠΎ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ‚ Π·Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎΠ³Π»Π΅Π΄. Ова Π΅ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ Π²ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‡ΠΊΠΎΡ‚ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚ view_with_unionall.

  • Π½Π° SELECT списокот Π½Π° сСкоС Π±Π°Ρ€Π°ΡšΠ΅ ΠΌΠΎΡ€Π° Π΄Π° содрТи a UNION ALL ΠΌΠ°Ρ€ΠΊΠ΅Ρ€, ΠΈ UNION ALL ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° ΠΈΠΌΠ° посСбна константна Π½ΡƒΠΌΠ΅Ρ€ΠΈΡ‡ΠΊΠ° ΠΈΠ»ΠΈ стрингна врСдност Π²ΠΎ сСкоја ΠΎΠ΄ Π½ΠΈΠ² UNION ALL Π³Ρ€Π°Π½ΠΊΠ°. ΠŸΠΎΠ½Π°Ρ‚Π°ΠΌΡƒ, ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π° Π·Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ ΠΌΠΎΡ€Π° Π΄Π° сС појави Π²ΠΎ истата Ρ€Π΅Π΄ΠΎΠ²Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠ±Π° Π²ΠΎ SELECT листа Π½Π° сСкој Π±Π»ΠΎΠΊ Π·Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ°. Π’ΠΈΠ΄ΠΈ "UNION ALL ΠžΠ±Π΅Π»Π΅ΠΆΡƒΠ²Π°Ρ‡ ΠΈ ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎΒ» Π·Π° повСќС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΎ врска со UNION ALL ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΈ.
  • НСкои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ°, Π±Π°Ρ€Π°ΡšΠ° Π·Π° Π·Π±ΠΈΡ€Π΅Π½ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ само Π·Π° Π²ΠΌΠ΅Ρ‚Π½ΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ Π½Π΅ сС ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ Π·Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΈ со UNION ALL. Π—Π°Π±Π΅Π»Π΅ΠΆΠ΅Ρ‚Π΅, сСпак, Π΄Π΅ΠΊΠ° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΈ ΡˆΡ‚ΠΎ сС користат Π²ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°, ΠΊΠΎΠΈ Π½Π΅ содрТат ΡΠΏΠΎΡ˜ΡƒΠ²Π°ΡšΠ° ΠΈΠ»ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΈ, ΠΌΠΎΠΆΠ΅ Π±Ρ€Π·ΠΎ Π΄Π° сС освСТат ΠΊΠΎΠ³Π° UNION ALL ΠΈΠ»ΠΈ сС користат далСчински Ρ‚Π°Π±Π΅Π»ΠΈ.
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ Π·Π° ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° компатибилноста ΠΌΠΎΡ€Π° Π΄Π° сС постави Π½Π° 9.2.0 ΠΈΠ»ΠΈ повисоко Π·Π° Π΄Π° сС создадС Π±Ρ€Π·ΠΎ освСТувачки ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΡ€ΠΈΠΊΠ°Π· со UNION ALL.

НС сакам Π΄Π° Π³ΠΈ Π½Π°Π²Ρ€Π΅Π΄Π°ΠΌ ΠΎΠ±ΠΎΠΆΠ°Π²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Oracle, Π½ΠΎ ΡΡƒΠ΄Π΅Ρ˜ΡœΠΈ спорСд Π½ΠΈΠ²Π½Π°Ρ‚Π° листа Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°, сС Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° овој ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π΅ напишан Π½Π΅ Π²ΠΎ ΠΎΠΏΡˆΡ‚ΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜, ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ нСкој Π²ΠΈΠ΄ ΠΌΠΎΠ΄Π΅Π», Ρ‚ΡƒΠΊΡƒ ΠΎΠ΄ ΠΈΠ»Ρ˜Π°Π΄Π½ΠΈΡ†ΠΈ Π˜Π½Π΄ΠΈΡ˜Ρ†ΠΈ, ΠΊΠ°Π΄Π΅ Π½Π° ситС ΠΈΠΌ бСшС Π΄Π°Π΄Π΅Π½Π° моТност Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ своја Π³Ρ€Π°Π½ΠΊΠ° ΠΈ сСкој ΠΎΠ΄ Π½ΠΈΠ² Π½Π°ΠΏΡ€Π°Π²ΠΈ ΡˆΡ‚ΠΎ моТСшС ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈ. ΠšΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° овој ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° вистинска Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ ΠΊΠ°ΠΊΠΎ одСњС Π½ΠΈΠ· минско ΠΏΠΎΠ»Π΅. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅Ρ‚Π΅ ΠΌΠΈΠ½Π° Π²ΠΎ сСкоС Π²Ρ€Π΅ΠΌΠ΅ со ΠΏΡ€ΠΈΡ‚ΠΈΡΠΊΠ°ΡšΠ΅ Π½Π° Π΅Π΄Π½ΠΎ ΠΎΠ΄ Π½Π΅ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΈΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°. Како Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Π΅ исто Ρ‚Π°ΠΊΠ° посСбно ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅, Π½ΠΎ Ρ‚ΠΎΠ° Π΅ Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ опсСгот Π½Π° овој напис.

Microsoft SQL Server,

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π±Π°Ρ€Π°ΡšΠ°

ΠŸΠΎΠΊΡ€Π°Ρ˜ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ SET ΠΈ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° дСтСрминистичка Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°, ΠΌΠΎΡ€Π° Π΄Π° сС исполнат ΠΈ слСднивС Π±Π°Ρ€Π°ΡšΠ°:

  • ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΊΠΎΡ‚ ΡˆΡ‚ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° CREATE INDEX ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ сопствСник Π½Π° ΠΏΠΎΠ³Π»Π΅Π΄ΠΎΡ‚.
  • Кога ќС Π³ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ индСксот, Π½Π° IGNORE_DUP_KEY ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ поставСна Π½Π° OFF (стандардна поставка).
  • Π’Π°Π±Π΅Π»ΠΈΡ‚Π΅ ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€Π°Π½ΠΈ со имиња ΠΎΠ΄ Π΄Π²Π° Π΄Π΅Π»Π°, Π¨Π΅ΠΌΠ°Ρ‚Π°.ΠΈΠΌΠ΅ Π½Π° маса Π²ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΏΠΎΠ³Π»Π΅Π΄.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ ΠΎΠ΄ корисникот Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚ ΠΌΠΎΡ€Π° Π΄Π° сС ΠΊΡ€Π΅ΠΈΡ€Π°Π°Ρ‚ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° WITH SCHEMABINDING ΠΎΠΏΡ†ΠΈΡ˜Π°.
  • Π‘ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ ΠΎΠ΄ корисникот Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚ ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€Π°Π½ΠΈ со имиња ΠΎΠ΄ Π΄Π²Π° Π΄Π΅Π»Π°, ..
  • Π‘Π²ΠΎΡ˜ΡΡ‚Π²ΠΎΡ‚ΠΎ Π·Π° пристап Π΄ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° ΠΎΠ΄ корисникот ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ NO SQL, Π° ΠΈΠΌΠΎΡ‚ΠΎΡ‚ Π·Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ пристап ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ NO.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΎΠ±ΠΈΡ‡Π½ΠΈΠΎΡ‚ јазик (CLR) ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΡ˜Π°Π²Π°Ρ‚ Π²ΠΎ списокот Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π΄Π΅Π» ΠΎΠ΄ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° кластСрираниот индСксСн ΠΊΠ»ΡƒΡ‡. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ CLR Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС ΠΏΠΎΡ˜Π°Π²Π°Ρ‚ Π²ΠΎ ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°Ρ‚Π° WHERE Π½Π° ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°Ρ‚Π° ON Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° JOIN Π²ΠΎ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚.
  • CLR Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ ΠΎΠ΄ корисникот CLR ΡˆΡ‚ΠΎ сС користат Π²ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΈ ΠΈΠΌΠ°Π°Ρ‚ поставСнитС ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ Π²ΠΎ слСдната Ρ‚Π°Π±Π΅Π»Π°.

    БопствСност
    забСлСшка

    Π”Π•Π’Π•Π ΠœΠ˜ΠΠ˜Π‘Π’Π˜Π§ΠšΠž = Π’Π˜Π‘Π’Π˜ΠΠ‘ΠšΠ˜
    ΠœΠΎΡ€Π° Π΄Π° сС Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π° Сксплицитно ΠΊΠ°ΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ Microsoft .NET Framework.

    ΠŸΠ Π•Π¦Π˜Π—ΠΠž = Π’Π˜Π‘Π’Π˜ΠΠ‘ΠšΠ˜
    ΠœΠΎΡ€Π° Π΄Π° сС Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π° Сксплицитно ΠΊΠ°ΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ .NET Framework.

    ПРИБВАП НА ΠŸΠžΠ”ΠΠ’ΠžΠ¦Π˜ = ΠΠ•ΠœΠ SQL
    Π£Ρ‚Π²Ρ€Π΄Π΅Π½ΠΎ со ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ DataAccess Π½Π° DataAccessKind.None ΠΈ SystemDataAccess Π½Π° SystemDataAccessKind.None.

    ΠΠΠ”Π’ΠžΠ Π•Π¨Π•Π ПРИБВАП = Π‘Π 
    Ова ΡΠ²ΠΎΡ˜ΡΡ‚Π²ΠΎ Π΅ стандардно NO Π·Π° CLR Ρ€ΡƒΡ‚ΠΈΠ½ΠΈΡ‚Π΅.

  • ΠŸΠΎΠ³Π»Π΅Π΄ΠΎΡ‚ ΠΌΠΎΡ€Π° Π΄Π° сС ΠΊΡ€Π΅ΠΈΡ€Π° со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° WITH SCHEMABINDING ΠΎΠΏΡ†ΠΈΡ˜Π°.
  • ΠŸΠΎΠ³Π»Π΅Π΄ΠΎΡ‚ ΠΌΠΎΡ€Π° Π΄Π° ΡƒΠΏΠ°Ρ‚ΡƒΠ²Π° само Π½Π° Π±Π°Π·Π½ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ ΠΊΠΎΠΈ сС Π²ΠΎ истата Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΊΠ°ΠΊΠΎ ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚. ΠŸΠΎΠ³Π»Π΅Π΄ΠΎΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡƒΠΏΠ°Ρ‚ΡƒΠ²Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ.
  • Π˜Π·Ρ˜Π°Π²Π°Ρ‚Π° SELECT Π²ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π΅ смСС Π΄Π° Π³ΠΈ содрТи слСднитС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Transact-SQL:

    COUNT
    Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ROWSET (OPENDATASOURCE, OPENQUERY, OPENROWSET, И OPENXML)
    OUTER сС ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° (LEFT, RIGHTΠΈΠ»ΠΈ FULL)

    ИзвСдСна Ρ‚Π°Π±Π΅Π»Π° (Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° со Π½Π°Π²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ a SELECT изјава Π²ΠΎ FROM ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°)
    Π‘Π°ΠΌΠΎ-ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅
    ΠžΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ SELECT * or SELECT <table_name>.*

    DISTINCT
    STDEV, STDEVP, VAR, VARPΠΈΠ»ΠΈ AVG
    Π—Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈ ΠΈΠ·Ρ€Π°Π· Π½Π° Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° (CTE)

    ΠΏΠ»ΠΎΠ²ΠΈ1, тСкст, ntext, слика, XMLΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠ»ΡƒΠΌΠ½ΠΈ
    subquery
    OVER ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°, која Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Ρ€Π°Π½Π³ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ»ΠΈ Π·Π±ΠΈΡ€Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†ΠΎΡ‚

    ΠŸΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ со цСлосСн тСкст (CONTAINS, FREETEXT)
    SUM Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° која ΡƒΠΏΠ°Ρ‚ΡƒΠ²Π° Π½Π° ΠΏΠΎΠ½ΠΈΡˆΡ‚Π΅Π½ ΠΈΠ·Ρ€Π°Π·
    ORDER BY

    CLR Π·Π±ΠΈΡ€Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° ΠΎΠ΄ корисникот
    TOP
    CUBE, ROLLUPΠΈΠ»ΠΈ GROUPING SETS ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ

    MIN, MAX
    UNION, EXCEPTΠΈΠ»ΠΈ INTERSECT ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ
    TABLESAMPLE

    ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π°
    OUTER APPLY or CROSS APPLY
    PIVOT, UNPIVOT

    Π Π΅Ρ‚ΠΊΠΈ мноТСства ΠΊΠΎΠ»ΠΎΠ½ΠΈ
    Π’Π³Ρ€Π°Π΄Π΅Π½ΠΈ (TVF) ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€Π΅Π΄Π½ΡƒΠ²Π°Π½ΠΈ спорСд Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° со повСќС изјави (MSTVF)
    OFFSET

    CHECKSUM_AGG

    1 Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ°Π· ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи ΠΏΠ»ΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ; сСпак, Ρ‚Π°ΠΊΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π²ΠΎ кластСрираниот индСксСн ΠΊΠ»ΡƒΡ‡.

  • If GROUP BY Π΅ присутна, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° VIEW ΠΌΠΎΡ€Π° Π΄Π° содрТи COUNT_BIG(*) ΠΈ Π½Π΅ смСС Π΄Π° содрТи HAVING. ΠΎΠ²ΠΈΠ΅ GROUP BY ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°Ρ‚Π° сС ΠΏΡ€ΠΈΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ само Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° индСксиран ΠΏΡ€ΠΈΠΊΠ°Π·. Π‘Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° користи индСксиран ΠΏΡ€ΠΈΠΊΠ°Π· Π²ΠΎ ΡΠ²ΠΎΡ˜ΠΎΡ‚ ΠΏΠ»Π°Π½ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π΄ΡƒΡ€ΠΈ ΠΈ Π°ΠΊΠΎ Π½Π΅ Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡƒΠ²Π° ΠΎΠ²ΠΈΠ΅ GROUP BY ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°.
  • Ако Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΏΠΎΠ³Π»Π΅Π΄ содрТи a GROUP BY ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°, ΠΊΠ»ΡƒΡ‡ΠΎΡ‚ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Ρ‚Π½ΠΈΠΎΡ‚ кластСриран индСкс ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° само ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ GROUP BY ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°.

ОвдС Π΅ јасно Π΄Π΅ΠΊΠ° Π˜Π½Π΄ΠΈΡ˜Ρ†ΠΈΡ‚Π΅ Π½Π΅ Π±Π΅Π° Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ, бидСјќи Ρ‚ΠΈΠ΅ Ρ€Π΅ΡˆΠΈΡ˜Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ Ρ‚ΠΎΠ° спорСд ΡˆΠ΅ΠΌΠ°Ρ‚Π° β€žΠ½ΠΈΠ΅ ќС Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΌΠ°Π»ΠΊΡƒ, Π½ΠΎ Π΄ΠΎΠ±Ρ€ΠΎβ€œ. Односно, ΠΈΠΌΠ°Π°Ρ‚ повСќС ΠΌΠΈΠ½ΠΈ Π½Π° Ρ‚Π΅Ρ€Π΅Π½ΠΎΡ‚, Π½ΠΎ Π½ΠΈΠ²Π½Π°Ρ‚Π° Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π΅ потранспарСнтна. ΠΠ°Ρ˜Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΡƒΠ²Π°Ρ‡ΠΊΠΈ Π΅ ΠΎΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅:

ΠŸΠΎΠ³Π»Π΅Π΄ΠΎΡ‚ ΠΌΠΎΡ€Π° Π΄Π° ΡƒΠΏΠ°Ρ‚ΡƒΠ²Π° само Π½Π° Π±Π°Π·Π½ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ ΠΊΠΎΠΈ сС Π²ΠΎ истата Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΊΠ°ΠΊΠΎ ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΎΡ‚. ΠŸΠΎΠ³Π»Π΅Π΄ΠΎΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡƒΠΏΠ°Ρ‚ΡƒΠ²Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ.

Π’ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°, Ρ‚ΠΎΠ° Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° пристапи Π΄ΠΎ Π΄Ρ€ΡƒΠ³Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. Ова ја Π½Π°ΠΌΠ°Π»ΡƒΠ²Π° Ρ†Π΅Π»Π°Ρ‚Π° идСологија Π²ΠΎ ΠΏΡƒΠΏΠΊΠ°.
Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΎΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅ (ΠΈ ΠΏΠΎΠ½Π°Ρ‚Π°ΠΌΡƒ Π²ΠΎ тСкстот) Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅Ρ€Π° Π³ΠΈ Π½Π°ΠΌΠ°Π»ΡƒΠ²Π° случаитС Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°:

Π˜Π·Ρ˜Π°Π²Π°Ρ‚Π° SELECT Π²ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π΅ смСС Π΄Π° Π³ΠΈ содрТи слСднитС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Transact-SQL:

COUNT
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ROWSET (OPENDATASOURCE, OPENQUERY, OPENROWSET, И OPENXML)
OUTER сС ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° (LEFT, RIGHTΠΈΠ»ΠΈ FULL)

ИзвСдСна Ρ‚Π°Π±Π΅Π»Π° (Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° со Π½Π°Π²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ a SELECT изјава Π²ΠΎ FROM ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°)
Π‘Π°ΠΌΠΎ-ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅
ΠžΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ SELECT * or SELECT <table_name>.*

DISTINCT
STDEV, STDEVP, VAR, VARPΠΈΠ»ΠΈ AVG
Π—Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈ ΠΈΠ·Ρ€Π°Π· Π½Π° Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° (CTE)

ΠΏΠ»ΠΎΠ²ΠΈ1, тСкст, ntext, слика, XMLΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠ»ΡƒΠΌΠ½ΠΈ
subquery
OVER ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π°, која Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Ρ€Π°Π½Π³ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ»ΠΈ Π·Π±ΠΈΡ€Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†ΠΎΡ‚

ΠŸΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ со цСлосСн тСкст (CONTAINS, FREETEXT)
SUM Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° која ΡƒΠΏΠ°Ρ‚ΡƒΠ²Π° Π½Π° ΠΏΠΎΠ½ΠΈΡˆΡ‚Π΅Π½ ΠΈΠ·Ρ€Π°Π·
ORDER BY

CLR Π·Π±ΠΈΡ€Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° ΠΎΠ΄ корисникот
TOP
CUBE, ROLLUPΠΈΠ»ΠΈ GROUPING SETS ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ

MIN, MAX
UNION, EXCEPTΠΈΠ»ΠΈ INTERSECT ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ
TABLESAMPLE

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π°
OUTER APPLY or CROSS APPLY
PIVOT, UNPIVOT

Π Π΅Ρ‚ΠΊΠΈ мноТСства ΠΊΠΎΠ»ΠΎΠ½ΠΈ
Π’Π³Ρ€Π°Π΄Π΅Π½ΠΈ (TVF) ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€Π΅Π΄Π½ΡƒΠ²Π°Π½ΠΈ спорСд Ρ‚Π°Π±Π΅Π»Π°Ρ‚Π° со повСќС изјави (MSTVF)
OFFSET

CHECKSUM_AGG

Π—Π°Π±Ρ€Π°Π½Π΅Ρ‚ΠΈ сС ΠΠΠ”Π’ΠžΠ Π•Π¨ΠΠ˜ ΠŸΠ Π˜ΠšΠ›Π£Π§Π£Π’ΠΠŠΠ, УНИЈА, НАРАЧКИ ПО ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ. МоТСби бСшС полСсно Π΄Π° сС ΠΎΠ΄Ρ€Π΅Π΄ΠΈ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи намСсто ΡˆΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи. Бписокот Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ Π±ΠΈ Π±ΠΈΠ» ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠΌΠ°Π».

Π”Π° Ρ€Π΅Π·ΠΈΠΌΠΈΡ€Π°ΠΌΠ΅: ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ сСт Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π²ΠΎ сСкој (Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ΅Ρ€Ρ†ΠΈΡ˜Π°Π»Π΅Π½) DBMS наспроти Π½ΠΈΠ΅Π΄Π΅Π½ (со исклучок Π½Π° Π΅Π΄Π΅Π½ Π»ΠΎΠ³ΠΈΡ‡Π΅Π½, Π½Π΅ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈ) Π²ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°Ρ‚Π° LGPL. Π‘Π΅ΠΏΠ°ΠΊ, Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ Π΄Π΅ΠΊΠ° ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° овој ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π²ΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ Π½Π΅ΡˆΡ‚ΠΎ ΠΏΠΎΡ‚Π΅ΡˆΠΊΠΎ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π²ΠΎ ΠΎΠΏΠΈΡˆΠ°Π½Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°.

РСализация

Како Ρ€Π°Π±ΠΎΡ‚ΠΈ? PostgreSQL сС користи ΠΊΠ°ΠΊΠΎ β€žΠ²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°β€œ. Π’Π½Π°Ρ‚Ρ€Π΅ ΠΈΠΌΠ° комплСксСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚Π°ΠΌ кој Π³Ρ€Π°Π΄ΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ°. Π•Π²Π΅ ΠΈΠ·Π²ΠΎΡ€. И Π½Π΅ постои само Π³ΠΎΠ»Π΅ΠΌ сСт Π½Π° хСуристики со Π΅Π΄Π΅Π½ ΠΊΡƒΠΏ Π°ΠΊΠΎ Π΅. Π—Π½Π°Ρ‡ΠΈ, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ мСсСци Π·Π° ΡƒΡ‡Π΅ΡšΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΠΎΠ±ΠΈΠ΄Π΅Ρ‚Π΅ Π΄Π° ја Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π°.

Π”Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Сфикасно? Доста Сфикасно. Π—Π° ΠΆΠ°Π», Ρ‚ΠΎΠ° Π΅ Ρ‚Π΅ΡˆΠΊΠΎ Π΄Π° сС Π΄ΠΎΠΊΠ°ΠΆΠ΅. МоТам само Π΄Π° ΠΊΠ°ΠΆΠ°ΠΌ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ Π³ΠΈ Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΈΠ»Ρ˜Π°Π΄Π½ΠΈΡ†ΠΈΡ‚Π΅ Π±Π°Ρ€Π°ΡšΠ° ΡˆΡ‚ΠΎ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ Π²ΠΎ просСк Ρ‚ΠΈΠ΅ сС поСфикасни ΠΎΠ΄ ΠΎΠ½ΠΈΠ΅ Π½Π° Π΄ΠΎΠ±Π°Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€. ΠžΠ΄Π»ΠΈΡ‡Π΅Π½ SQL ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° напишС сСкоС Π±Π°Ρ€Π°ΡšΠ΅ поСфикасно, Π½ΠΎ со илјада ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Ρ‚ΠΎΡ˜ Сдноставно Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ˜Π° ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ°. ЕдинствСното Π½Π΅ΡˆΡ‚ΠΎ ΡˆΡ‚ΠΎ сСга ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° Π³ΠΎ Π½Π°Π²Π΅Π΄Π°ΠΌ ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠΊΠ°Π· Π·Π° СфСктивноста Π΅ Π΄Π΅ΠΊΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π½Π° овој DBMS ERP систСми, ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ‚ ΠΈΠ»Ρ˜Π°Π΄Π½ΠΈΡ†ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠœΠΠ’Π•Π Π˜ΠˆΠΠ›Π˜Π—Π˜Π ΠΠΠ˜ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, со ΠΈΠ»Ρ˜Π°Π΄Π½ΠΈΡ†ΠΈ корисници ΠΈ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ Ρ‚Π΅Ρ€Π°Π±Π°Ρ˜Ρ‚ΠΈ со стотици ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ записи ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° ΠΎΠ±ΠΈΡ‡Π΅Π½ сСрвСр со Π΄Π²Π° процСсори. Π‘Π΅ΠΏΠ°ΠΊ, сСкој ΠΌΠΎΠΆΠ΅ Π΄Π° ја ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ/ΠΏΠΎΠ±ΠΈΠ΅ СфСктивноста со ΠΏΡ€Π΅Π·Π΅ΠΌΠ°ΡšΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ PostgreSQL, Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΎ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° SQL ΠΏΡ€Π°ΡˆΠ°ΡšΠ° ΠΈ ΠΎΠ±ΠΈΠ΄ Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Ρ‚Π°ΠΌΡƒ.

Π’ΠΎ слСднитС статии, ќС Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌ ΠΈ Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° поставитС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со сСсии Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ повСќС.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€