ืืื ืืชืจืืืฉืื ืืืืคืืื ืืื ืืื ืืืคืืืงืฆืืืช ืฉืื ื ืืืืจืื ืืื ืืืคืืฉ ื ืชืื ืื ืืคื ืงืจืืืจืืื ืื ืืกืืืืื ืืืฆืืชื ืืฆืืจื ืงืื ืืงืจืืื. ืืืชืื ื ืื ืืคืฉืจืืืืช ื ืืกืคืืช ืืืืื, ืงืืืืฅ ืืืืืคื. ืืืฉืืื ืืื, ืืชืืืืจืื, ืืจืืืืืืืืช, ืืื ืืฉืคืืชืจืื ืืืชื ืืคืชืืื ืจืืื ืขืืฉืื ืืกืคืจ ืืขืืืืช, ืฉืืืืฉื ืืืจืืืช ืืกืื ืืคืจืืืืงืืืืืืช. ืืืื ื ื ืกื ืืฉืงืื ืืคืฉืจืืืืช ืฉืื ืืช ืืคืชืจืื ืืขืื ืื ืืืืืฉ ืืืืฆืืช ืืืืืจืช ืืืืฉืื ืืืขืื ืืืืชืจ.
ืืคืฉืจืืช ืืืืืคื ืืก' 1
ืืืคืฉืจืืช ืืคืฉืืื ืืืืชืจ ืฉืขืืื ืืจืืฉ ืืื ืืฆืืช ืชืืฆืืืช ืืืคืืฉ ืขืืื ืืืจ ืขืืื ืืฆืืจื ืืงืืืกืืช ืืืืชืจ ืฉืื.
ื ื ืื ืฉืืืคืืืงืฆืื ืฉืื ืืฉืชืืฉืช ืืืกื ื ืชืื ืื ืืืกื. ืืืงืจื ืื, ืืื ืืืฆืื ืืืืข ืืฆืืจื ืื, ืชืฆืืจื ืืืจืืฅ ืฉืชื ืฉืืืืชืืช SQL:
- ืงืื ืฉืืจืืช ืขืืืจ ืืืฃ ืื ืืืื.
- ืืฉื ืืช ืืืกืคืจ ืืืืื ืฉื ืืฉืืจืืช ืืืชืืืืื ืืงืจืืืจืืื ื ืืืืคืืฉ - ืื ืืืจืื ืืืฆืืช ืืคืื.
ืืื ื ืกืชืื ืขื ืืฉืืืืชื ืืจืืฉืื ื ืืืืฆืขืืช ืืกื ื ืชืื ืื MS SQL ืืืืืงื ืืืืืื
SELECT * FROM Sales.SalesOrderHeader
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY
ืืฉืืืืชื ืืขืื ืชืืืืจ ืืช 50 ืืืืื ืืช ืืจืืฉืื ืืช ืืืจืฉืืื, ืืืืื ืืช ืืคื ืชืืจืื ืืืจื ืฉื ืืืกืคื, ืืืืืื ืืืจืืช, 50 ืืืืื ืืช ืืืืจืื ืืช.
ืื ืคืืขื ืืืืืจืืช ืขื ืืกืืก ืืืืืงื, ืืื ืืืื ื ืกืชืื ืขื ืชืืื ืืช ืืืืฆืืข ืืกืืืืกืืืงืืช I/O:
Table 'SalesOrderHeader'. Scan count 1, logical reads 698, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
ืืชื ืืืื ืืงืื ื ืชืื ืื ืกืืืืกืืืื ืฉื ืงืื/ืคืื ืขืืืจ ืื ืฉืืืืชื ืขื ืืื ืืคืขืืช ืืคืงืืื SET STATISTICS IO ON ืืืื ืืจืืฆื ืฉื ืืฉืืืืชื.
ืืคื ืฉื ืืชื ืืจืืืช ืืชืืื ืืช ืืืืฆืืข, ืืืคืฉืจืืช ืขืชืืจืช ืืืฉืืืื ืืื ืืืืื ืืช ืื ืืฉืืจืืช ืฉื ืืืืช ืืืงืืจ ืืคื ืชืืจืื ืืืกืคื. ืืืืขืื ืืื ืฉืืื ืฉืืืคืืขื ืืืชืจ ืฉืืจืืช ืืืืื, ืืืืื ืืืื "ืงืฉื ืืืชืจ". ืืคืืขื, ืืฉ ืืืืื ืข ืืืฆืืื ืืืื, ืื ืืืื ื ืืกืืฃ ืืื ืืชืืจืื ืืืืกืคื ืื ืจืื ืื โโืืฉืชื ืชื ืฆืจืืืช ืืืฉืืืื:
Table 'SalesOrderHeader'. Scan count 1, logical reads 165, physical reads 0, read-ahead reads 5, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
ืืจืืจ ืฉืื ืืฉืชืคืจ ืืืจืื. ืืื ืืื ืื ืืืขืืืช ื ืคืชืจืืช? ืืืื ื ืฉื ื ืืช ืืฉืืืืชื ืืื ืืืคืฉ ืืืื ืืช ืฉืืื ืืขืืืช ืืืืืืช ืฉื ืืกืืืจื ืขืืื ืขื 100$:
SELECT * FROM Sales.SalesOrderHeader
WHERE SubTotal > 100
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY
Table 'SalesOrderHeader'. Scan count 1, logical reads 1081, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
ืืฉ ืื ื ืืฆื ืืฆืืืง: ืชืืื ืืช ืืฉืืืืชืืช ืื ืืจืืขื ืืืจืื ืืืงืืืืช, ืืื ืืืกืคืจ ืืืืืชื ืฉื ืงืจืืืืช ืืืืืืช ืืืื ืืืขื ืคื ืฉื ืืื ืืืฉืจ ืืกืจืืงืช ืืืื ืืืื. ืืฉ ืืืฆื - ืื ื ืขืฉื ืืื ืืงืก ืืืจืื ืืืื ืฉืืืจ ืงืืื ืื ืืกืืฃ ืืช ืืืืืจ ืืืืื ืฉื ืืกืืืจื ืืฉืื ืืฉื ื, ื ืงืื ืฉืื 165 ืงืจืืืืช ืืืืื ืืืช:
CREATE INDEX IX_SalesOrderHeader_OrderDate_SubTotal on Sales.SalesOrderHeader(OrderDate, SubTotal);
ื ืืชื ืืืืฉืื ืืช ืกืืจืช ืืืืืืืืช ืืื ืืืืจื ืืื, ืื ืฉืชื ืืืืฉืืืช ืืขืืงืจืืืช ืฉืืจืฆืื ื ืืืืืข ืืื ืื:
- ืืืืกืคืช ืื ืงืจืืืจืืื ืื ืกืืจ ืืืื ืืืฉ ืืฉืืืืชืช ืืืคืืฉ ืืืืื ืืืืืช ืืฉืคืขื ืืฉืืขืืชืืช ืขื ืืืืจืืช ืฉืืืืชืช ืืืืคืืฉ.
- ืืื ืื ืื ืื ื ืฆืจืืืื ืืืืกืืจ ืจืง ืืืง ืืื ืชืื ืื, ืืื ืืช ืื ืืชืืฆืืืช ืฉืชืืืืืช ืืช ืืื ืื ืืืืคืืฉ, ืืฉื ื ืืจืืื ืจืืืช ืืืืขื ืฉืืืืชื ืืื.
ืืขืช ื ืขืืืจ ืืฉืืืืชื ืืฉื ืืื ืฉืืืืืจื ืืืฉ ืืืชืืื - ืื ืฉืกืืคืจืช ืืช ืืกืคืจ ืืจืฉืืืืช ืืขืืืืืช ืืงืจืืืจืืื ืืืืคืืฉ. ื ืืงื ืืช ืืืชื ืืืืื - ืืืคืืฉ ืืืจ ืืืื ืืช ืืขืืืช ืฉื ืืืชืจ ื-$100:
SELECT COUNT(1) FROM Sales.SalesOrderHeader
WHERE SubTotal > 100
ืืืชืืฉื ืืืื ืืงืก ืืืฉืืื ืืืฆืืื ืืขืื, ืื ื ืืงืืืื:
Table 'SalesOrderHeader'. Scan count 1, logical reads 698, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
ืืขืืืื ืฉืืฉืืืืชื ืขืืืจืช ืขื ืื ืืืื ืืงืก ืืื ื ืืคืชืืขื, ืฉืื ืืฉืื SubTotal ืืื ื ืืืืงืื ืืจืืฉืื, ืืืื ืืฉืืืืชื ืื ืืืืื ืืืฉืชืืฉ ืื. ืืืขืื ื ืคืชืจืช ืขื ืืื ืืืกืคืช ืืื ืืงืก ื ืืกืฃ ืืฉืื SubTotal, ืืืชืืฆืื ืืื ืืื ื ืืชื ืจืง 48 ืงืจืืืืช ืืืืืืช.
ืืชื ืืืื ืืชืช ืขืื ืืื ืืืืืืืช ืืืงืฉืืช ืืกืคืืจืช ืืืืืืช, ืืื ืืืืืช ื ืฉืืจืช ืืื: ืงืืืช ื ืชืื ืืกืคืืจืช ืืกืืื ืืืืื ืื ืฉืชื ืืงืฉืืช ืฉืื ืืช ืืืืชืืช, ืืื ืืื ืืืจืฉ ืืืฆืขืื ืืฉืื ืืืืคืืืืืืฆืื. ืืืืคื ืืืื, ืื ืชืืื ืืืฆืื ืฉืืืื ืฉื ืืื ืืงืกืื ืฉืขืืื ืืืืชื ืืืื ืขืืืจ ืฉืชื ืืฉืืืืชืืช.
ืืืชืื ืืื, ืืืช ืืืจืืฉืืช ืืืฉืืืืช ืฉืฆืจืื ืืืืืืจ ืืขืช ืคืืชืื ืคืชืจืื ืืืคืืฉ ืืื ืืื ืืื ืืืืช ืืฉืื ืืขืกืง ืืจืืืช ืืช ืกื ืืืคืฆืื ืฉื ืืฆืื. ืืขืชืื ืงืจืืืืช ืงืืจื ืฉืื. ืื ืืืื ืืคื ืืกืคืจื ืขืืืืื ืกืคืฆืืคืืื, ืืืขืชื, ืืื ืคืชืจืื ืขื ืืืงืฃ ืฆืจ ืืืื, ืืืืืื ืฉืจืื ืชืจืืืฉื ืืืืืคื ื ืจืืื ืืื "ืขืืืจ ืืืฃ ืืื".
ืืคืฉืจืืช ืืืืืคื ืืก' 2
ืืื ื ื ืื ืฉืืืฉืชืืฉืื ืื ืืืคืช ืืืขืช ืืช ืืืกืคืจ ืืืืื ืฉื ืืืืืืงืืื ืฉื ืืฆืื. ืืืื ื ื ืกื ืืคืฉื ืืช ืืฃ ืืืืคืืฉ:
ืืืขืฉื, ืืืืจ ืืืืื ืฉืืฉืชื ื ืืื ืฉืืื ืืจื ืื ืืื ืืืกืคืจื ืขืืืืื ืกืคืฆืืคืืื, ืืขืืฉืื ืืืืื ืืื ืื ืฆืจืืื ืืืขืช ืืื ืืืืืื ืืืืืช ืืื ืืืฆืื ืืืชื. ืืื ื ืฉืืืช ืืฉืืื - ืืื ืืืืื ืืืืขืช ืื ืืฉ ื ืชืื ืื ืขืืืจ ืืขืืื ืืื (ืืื ืืืฆืื ื ืืื ืืช ืืงืืฉืืจ "ืืื")?
ืืชืฉืืื ืคืฉืืื ืืืื: ืืชื ืืืื ืืงืจืื ืืืกื ืื ืชืื ืื ืจืฉืืื ืืืช ืืืชืจ ืืืืจืืฉ ืืชืฆืืื, ืืื ืืืืืช ืฉื ืจืฉืืื "ื ืืกืคืช" ืื ืชืจืื ืื โโืืฉ ืืืง ืืื. ืืืจื ืื, ืืชื ืฆืจืื ืจืง ืืืคืขืื ืืงืฉื ืืืช ืืื ืืงืื ืขืืื ืืื ืฉื ื ืชืื ืื, ืื ืฉืืฉืคืจ ืืฉืืขืืชืืช ืืช ืืืืฆืืขืื ืืืงื ืขื ืืชืืืื ืืคืื ืงืฆืืื ืืืืช ืืื. ืืชืจืืื ืฉืื, ืืื ืืงืจื ืฉืื ืกืืจืื ืืกืคืืจ ืืช ืืืกืคืจ ืืืืื ืฉื ืืจืฉืืืืช ืืืืฅ ืืช ืืกืืจืช ืืชืืฆืืืช ืคื 4-5.
ืืฉื ื ืืกืคืจ ืืคืฉืจืืืืช ืืืฉืง ืืฉืชืืฉ ืืืืฉื ืื: ืคืงืืืืช "ืืืืจื" ื"ืงืืืื", ืืื ืืืืืื ืืืขืื, ืืคืชืืจ "ืืขื ืขืื", ืฉืคืฉืื ืืืกืืฃ ืืืง ืืืฉ ืืชืืฆืืืช ืืืืฆืืืช, "ืืืืื ืืื ืกืืคืืช", ืฉืขืืื ืขื ืืขืืงืจืื ืฉื "ืืขื ืืืชืจ" ", ืืื ืืืืช ืืงืื ืืช ืืืืง ืืื ืืื ืฉืืืฉืชืืฉ ืืืืื ืืช ืื ืืชืืฆืืืช ืืืืฆืืืช ืขื ืืกืืฃ. ืื ืืฉื ื ืื ืืคืชืจืื ืืืืืชื, ืขืงืจืื ืืืืืช ืื ืชืื ืื ื ืฉืืจ ืืื.
ื ืืืื ืกืื ืฉื ืืืฉืื ืืืืืคื
ืื ืืืืืืืช ืืฉืืืืชื ืฉื ืืชื ื ืืขืื ืืฉืชืืฉืืช ืืืืฉืช "ืืืกื + ืกืคืืจื", ืืืฉืจ ืืฉืืืืชื ืขืฆืื ืืฆืืื ืช ืืืืื ืกืืจ ืฉืืจืืช ืืชืืฆืื ืืืื ืฉืืจืืช ืืฉ ืืืืืืจ. ืจืืฉืืช, ืืื ื ืืื ืืืฆื ืืืจืื ืืช ืืขืืจืช ืืคืจืืืจืื ืืฆืืจื ืืืืื ืืืืชืจ ืืืงืจื ืื. ืืคืืขื, ื ืชืงืืชื ืืืกืคืจ ืฉืืืืช:
- ืืืกืคืจ ืืกืืืืจื ืฉื ืืขืืื ืืืืืงืฉ (pageIndex), ืืืื ืืขืืื (pageSize).
- ืืืกืคืจ ืืกืืืืจื ืฉื ืืจืฉืืื ืืจืืฉืื ื ืฉืืฉ ืืืืืืจ (startIndex), ืืืกืคืจ ืืืจืื ืฉื ืจืฉืืืืช ืืชืืฆืื (ืกืคืืจื).
- ืืกืคืจ ืืจืฆืฃ ืฉื ืืจืฉืืื ืืจืืฉืื ื ืฉืืฉ ืืืืืืจ (startIndex), ืืกืคืจ ืืจืฆืฃ ืฉื ืืจืฉืืื ืืืืจืื ื ืฉืชืืืืจ (endIndex).
ืืืื ืจืืฉืื ืืืื ื ืจืื ืฉืื ืื ืื ืืืื ืืจื ืฉืืื ืืืื. ืืื ืื ืื ืื - ืืืคืฉืจืืช ืื ืืื ืืืืื ืืืจืกืืืช ืืืืชืจ ืืื ืืฉื ืืื (startIndex, ืกืคืืจื). ืืฉ ืืื ืืกืคืจ ืกืืืืช:
- ืขืืืจ ืืืฉืช ืืืืื ืฉื ืขืจื 1+ ืฉื ืืชื ื ืืขืื, ืืืคืฉืจืืช ืืจืืฉืื ื ืขื pageIndex ื-pageSize ืืื ืืืื ืื ื ืืื. ืืืืืื, ืื ื ืจืืฆืื ืืืฆืื 50 ืคืืกืืื ืืขืืื. ืืคื ืืืืืืจืืชื ืืขืื, ืขืืื ืืงืจืื ืจืฉืืื ืืืช ืืืชืจ ืืื ืืจืฉ. ืื ื-"+1" ืืื ืื ืืืืฉื ืืฉืจืช, ืืกืชืืจ ืฉืืขืืื ืืจืืฉืื ืขืืื ื ืืืงืฉ ืจืฉืืืืช ื-1 ืขื 51, ืขืืืจ ืืฉื ื - ื-51 ืขื 101 ืืื'. ืื ืชืฆืืื ืืืื ืขืืื ืฉื 51 ืืชืืืื ืืช pageIndex, ืืขืืื ืืฉื ื ืืืืืจ ื-52 ื-102 ืืื'. ืืืชืื ืืื, ืืืคืฉืจืืช ืืจืืฉืื ื, ืืืจื ืืืืืื ืืืืฉื ืืจืืื ืืคืชืืจ ืืืขืืจ ืืขืืื ืืื ืืื ืืืจืื ืืฉืจืช ืืืืื ืืช ืืฉืืจื ื"ื ืืกืคืช", ืฉืชืืื ื ืืืื ืก ืืืื ืืจืืื.
- ืืืคืฉืจืืช ืืฉืืืฉืืช ืื ืืืืื ืืช ืืื, ืฉืื ืืื ืืืจืืฅ ืฉืืืืชืืช ืืจืื ืืกืื ืื ืชืื ืื ืขืืืื ืชืฆืืจื ืืขืืืจ ืืช ืืกืคืืจื ืืื ืืช ืืืื ืืงืก ืฉื ืืจืฉืืื ืืืืจืื ื. ืืคืืชืช startIndex ื-endIndex ืขืฉืืื ืืืืืช ืคืขืืื ืืจืืชืืืืช ืคืฉืืื, ืืื ืืื ืืืืชืจืช ืืื.
ืืขืช ืขืืื ื ืืชืืจ ืืช ืืืกืจืื ืืช ืฉื ืืืฉืื ืืืืืคื ืืืืฆืขืืช "ืงืืืื + ืืืืช":
- ืฉืืืคื ืฉื ืื ืขืืื ืขืืงื ืชืืื ืืงืจื ืืืืืืช ืืืชืจ ืืืงืืื, ืืืืืื ืฉืืกืืก ืื ืชืื ืื ืขืืืื ืืฆืืจื ืืขืืืจ ืขื ืื ืืจืฉืืืืช "ืืืืชืืื" ืืคื ืงืจืืืจืืื ื ืืืืคืืฉ ืืืืืื, ืืืืืจ ืืื ืืขืฆืืจ ืืงืืข ืืจืฆืื.
- ืื ืื DBMSs ืืืืืื ืืชืืื ืืืืฉื ืื.
ืืฉ ืืืืคืืช, ืืื ืื ืื ืื ืืืฉืืืืช. ืืจืืฉืื ื ืืืื ืืืืฉืืช ืืืื ื ืงืจืืช "ืืืืคืช ืืคืชืืืช" ืื "ืฉืืืช ืืืคืืฉ" ืืืื ืืืืงืื: ืืืืจ ืงืืืช ืื ื, ืชืืื ืืืืืจ ืืช ืขืจืื ืืฉืืืช ืืจืฉืืื ืืืืจืื ื ืืืฃ, ืืืืืจ ืืื ืืืฉืชืืฉ ืืื ืืื ืืงืื ืืืืง ืืื. ืืืืืื, ืืจืฆื ื ืืช ืืฉืืืืชื ืืืื:
SELECT * FROM Sales.SalesOrderHeader
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY
ืืืจืฉืืื ืืืืจืื ื ืงืืืื ื ืืช ืขืจื ืชืืจืื ืืืืื ื '2014-06-29'. ืืื ืืื ืืงืื ืืช ืืืฃ ืืื ืืชื ืืืื ืื ืกืืช ืืขืฉืืช ืืืช:
SELECT * FROM Sales.SalesOrderHeader
WHERE OrderDate < '2014-06-29'
ORDER BY OrderDate DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY
ืืืขืื ืืื ืฉ-OrderDate ืืื ืฉืื ืื ืืืืืื ืืกืืืจ ืืื ืื ืฉืืืฆื ืฉืฆืืื ืืขืื ืืคืกืคืก ืืจืื ืฉืืจืืช ื ืืจืฉืืช. ืืื ืืืืกืืฃ ืื-ืืฉืืขืืช ืืฉืืืืชื ืื, ืขืืื ืืืืกืืฃ ืฉืื ืืืืืื ืืชื ืื (ื ื ืื ืฉ-75074 ืืื ืืขืจื ืืืืจืื ืฉื ืืืคืชื ืืจืืฉื ืืืืืง ืืจืืฉืื):
SELECT * FROM Sales.SalesOrderHeader
WHERE (OrderDate = '2014-06-29' AND SalesOrderID < 75074)
OR (OrderDate < '2014-06-29')
ORDER BY OrderDate DESC, SalesOrderID DESC
OFFSET 0 ROWS
FETCH NEXT 50 ROWS ONLY
ืืคืฉืจืืช ืื ืชืขืืื ื ืืื, ืื ืืืืคื ืืืื ืืืื ืงืฉื ืืืฆืข ืืืคืืืืืืฆืื ืืืืืื ืฉืืชื ืื ืืืื ืืืคืจืืืจ OR. ืื ืืขืจื ืฉื ืืืคืชื ืืจืืฉื ืืื ืขื ืขืืืืช OrderDate, ื ืืชื ืืคืฉื ืืช ืืชื ืื ืขื ืืื ืืฉืืจืช ืืกื ื ืืืื ืืคื SalesOrderID. ืืื ืื ืืื ืืชืื ืงืคืื ื ืืื ืืขืจืืื ืฉื ืืืคืชื ืืจืืฉื ืืืฉืื ืฉืืคืื ืืืืื ืช ืืชืืฆืื, ืื ื ืืชื ืืืืื ืข ื-OR ืื ืืจืื ื-DBMSs. ืืืฆื ืื ืืืื ืฉืื ื ืืืืจ ืืื PostgreSQL, ืฉืชืืื ืืืืคื ืืื ืืืฉืืืืืช tuple, ืื ืืชื ืืืชืื ืืช ืืชื ืื ืืขืื ืืชืืจ "WHERE (OrderDate, SalesOrderID) < ('2014-06-29', 75074)". ืืืื ืชื ืืคืชื ืืืจืื ืขื ืฉื ื ืืฉืืืช ืืืื, ืฉืืืืชื ืืื ืืืืจื ืืืืืช ืงืื ืืืื.
ืืืฉื ืืืืคืืช ืฉื ืืื ื ืืชื ืืืฆืื, ืืืฉื, ื
ืกืื ืื ืืืจืื
ืืืื ื ืกืื ืืช ืืืฉืืื ืขืื ืืืชืจ. ื ื ืื ืฉืืฉื ื ืืจืืฉื ืืืืฉื ืืช ืื ืฉื ืงืจื ืืืคืืฉ ืคื ืื, ืืืืืจ ืืืื ืืืืื ืืื ืืืืช ืืงืืื ืืช. ืืืืืืืืช ืืขืื ืืืืืกืกืืช ืขื ืืืืช ืืืืื ืืช ืืื ื ืืืืืฉืืช ืืืืืื ืืืงืจื ืื, ืื ืืืื ื ืขืืืจ ืืืืืช ืืืืฆืจ ืืืกื ืื ืชืื ืื ืฉื AdventureWorks:
ืื ืืจืขืืื ืืืืืจื ืืืคืืฉ ืคื ืื? ืืขืืืื ืืื ืฉืืื ืจืืื ืกืื ืื ืืืฆื ืืกืคืจ ืืจืฉืืืืช ืืขืืืืืช ืืงืจืืืจืืื ืื ืชืื ืืชืืฉืืืช ืืืกื ื ืื ืฉื ืืืจื ืืื ืฉืืจ ืืงืืืืจืืืช.
ืืืืืื, ืื ื ืืืจ ืืช ืงืืืืจืืืช ืืืืคื ืืื ืืืช ืืฆืืข ืืฉืืืจ ืืืืืื ืื, ืืืืื ืชืฆืื ืจืง ืืืคื ืืื ืฉืืืจืื, ืื:
- ืขืืืจ ืื ืงืจืืืจืืื ืืงืืืฆืช ืืงืืืืจืืืช, ืืกืคืจ ืืืืฆืจืื ืืืืชื ืงืืืืจืื ืืืฆื ืืฉืืืจ.
- ืขืืืจ ืื ืงืจืืืจืืื ืฉื ืงืืืฆืช "ืฆืืขืื", ืืืฆื ืืกืคืจ ืืืืคื ืืื ืืฆืืข ืื.
ืื ื ืืืืื ืืคืื ืืชืืฆืื ืขืืืจ ืชื ืืื ืืืื:
ืื ืชืืืงื ืื ืืช ืงืืืืจืืืช "ืืืืฉ", ืืืืื ืชืฆืื ืื ืืืืื ืฉืืืจืื ืฉื ืืฆืืื ืืืืื. ืื ืืกืคืจ ืืืืฆืจืื ืืฉืืืจืื ืืกืขืืฃ "ืฆืืข" ืืืืฉื ืืืืฉ ืืืชืื ืืชื ืืื ืืืืฉืื, ืจืง ืืกืขืืฃ "ืงืืืืจืืืช" ืฉืื ืืืจ ืื ืืฉืชื ื... ืื ื ืืงืืื ืฉืืืืืืืืช ืืืื ืืกืคืืงืืช ืืื ืืืืื ืืช ืืืืืจืืชื ืืืืคืืฉ ืืจืืื.
ืืขืช ืืืื ื ืืืืื ืืืฆื ื ืืชื ืืืืฉื ืืืช ืขื ืืกืืก ืืืกื. ืื ืงืืืฆืช ืงืจืืืจืืื ืื, ืืืื ืงืืืืจืื ืืฆืืข, ืชืืจืืฉ ืฉืืืืชื ื ืคืจืืช:
SELECT pc.ProductCategoryID, pc.Name, COUNT(1) FROM Production.Product p
INNER JOIN Production.ProductSubcategory ps ON p.ProductSubcategoryID = ps.ProductSubcategoryID
INNER JOIN Production.ProductCategory pc ON ps.ProductCategoryID = pc.ProductCategoryID
WHERE p.Color = 'Black'
GROUP BY pc.ProductCategoryID, pc.Name
ORDER BY COUNT(1) DESC
SELECT Color, COUNT(1) FROM Production.Product p
INNER JOIN Production.ProductSubcategory ps ON p.ProductSubcategoryID = ps.ProductSubcategoryID
WHERE ps.ProductCategoryID = 1 --Bikes
GROUP BY Color
ORDER BY COUNT(1) DESC
ืื ืจืข ืืคืชืจืื ืืื? ืื ืืืื ืคืฉืื - ืื ืื ืงื ื ืืืื ืืื. ืื ืืงืืข ืกืื ืื ืืืจืฉ ืฉืืืืชื ื ืคืจืืช ืืืืฉืื ืืืืืืช, ืืฉืืืืชืืช ืืื ืืื ื ืืงืืืช ืืืืชืจ. ืืื ืืืืช ืืงืืื ืืช, ืงืืืืจืืืช ืืกืืืืืช ืขืฉืืืืช ืืืืื ืืื ืขืฉืจืืช ืงืืขื ืกืื ืื, ืื ืฉืืืื ืืืืืช ืืขืืืช ืืืฆืืขืื ืจืฆืื ืืช.
ืืืจื ืืื ืืืืจ ืืืฆืืจืืช ืืืื ืืฆืืขืื ืื ืืื ืคืชืจืื ืืช, ืืืืืจ:
- ืฉืื ืืช ืื ืกืคืืจืืช ืืืืืืืช ืืฉืืืืชื ืืืช. ืืืืื ื ืืื ืืช ืื ืืคืฉืจื ืืืืฆืขืืช ืืืืช ืืืคืชื UNION, ืืื ืื ืื ืืขืืืจ ืืจืื ืืืืฆืืขืื - ืืกื ืื ืชืื ืื ืขืืืื ืืฆืืจื ืืืฆืข ืื ืืื ืืืคืจืืื ืืื ืืืคืก.
- ืืืืืืช ืืืืื. ืื ืืืฆืข ืื ืืืขื ืืื ืคืขื ืฉืื ื ืืชืืจ ืืขืื. ืืืืืจื ืืื ืฉืืืจื ืืื ืื ืืืชื ืืคืฉืจื. ื ื ืื ืฉืืฉ ืื ื 10 "ืคื ืื", ืฉืืื ืืื ืืื 5 ืขืจืืื. ืืื ืืฆื ืืืื "ืฆื ืืข" ืืขืืืช ืื ืฉื ืืชื ืืจืืืช ืืืืชื ืื ืืืืช ืืงืืื ืืช. ืืืืืจื ืืืืื ื ืคื ืืื ืืฉืคืืขื ืขื ืืืืืืืช ื-9 ืืืจืื, ืืืืืื ืืืจืืช, ืขืืืจ ืื ืฉืืืื ืฉื ืงืจืืืจืืื ืื ืืืืืืืช ืืืืืืช ืืืืืช ืฉืื ืืช. ืืืืืื ืฉืื ื, ืืฉ ืกื"ื 50 ืงืจืืืจืืื ืื ืฉืืืฉืชืืฉ ืืืื ืืืืืจ, ืื ืฉืืืื 250 ืฉืืืืืื ืืคืฉืจืืื. ืืื ืืกืคืืง ืืืืจืื ืื ืืื ืืื ืืืื ืืขืจื ืืื ืฉื ื ืชืื ืื. ืืื ืืชื ืืืื ืืืชื ืื ืืืืืจ ืฉืื ืื ืืฉืืืืืื ืื ืืืืชืืื ืืืืฉืชืืฉ ืจืง ืืขืชืื ืจืืืงืืช ืืืืจ ืืืชืจ ื-5-10 ืงืจืืืจืืื ืื. ืื, ืืคืฉืจ ืืขืฉืืช ืืขืื ื ืขืฆืื ืืช ืืืืืกื ืืืืช ืฉื ืจืง ืื ืฉื ืืืจ ืื ืคืขื, ืืื ืืื ืฉืืืื ืืืชืจ ืืืืจ, ืื ืืืืื ืืื ืืืื ืคืืืช ืืขืื ืืืขืืืช ืืื ืืชืืืื ืืืื ืืืจืืฉืืช ืืืชืจ (ืืืืืื ืื ืืขืจื ืื ืชืื ืื ืืฉืชื ื ืืืืคื ืงืืืข).
ืืืจืื ืืืื, ืืืขืื ืืื ืืฉ ืืืจ ืืืื ืคืชืจืื ืืช ืืขืืืื ืืืื ืฉืขืืืืื ืืืืคื ืฆืคืื ืขื ืืืืืืช ืืืืืืช ืฉื ื ืชืื ืื. ืขืืืจ ืื ืืืช ืืืืคืฉืจืืืืช ืืืื, ืืืืื ื ืืืืง ืืช ืืืืฉืื ืืืืฉ ืฉื ืืืืืื ืืงืืืช ืืฃ ืืชืืฆืืืช ืืฉืชื ืงืจืืืืช ืืงืืืืืช ืืฉืจืช ืืืืจืื ืืช ืืืฉืง ืืืฉืชืืฉ ืืฆืืจื ืืื ืฉืืขืื ืช ืื ืชืื ืื ืืคื ืืืืืื "ืื ืชืคืจืืข" ืืชืฆืืื ืฉื ืชืืฆืืืช ืืืคืืฉ.
- ืงืจื ืืืืฉืื ืืืืฉ ืืื ืฉื "ืืืืืื" ืืขืชืื ืจืืืงืืช ืืื ืืืคืฉืจ. ืืืืืื, ืื ืชืืฉื ืืื ืืืืฉ ืืื ืคืขื ืฉืงืจืืืจืืื ื ืืืืคืืฉ ืืฉืชื ืื, ืืื ืืฆื ืืช ืืืกืคืจ ืืืืื ืฉื ืืชืืฆืืืช ืืชืืืืืช ืืช ืืชื ืืื ืื ืืืืืื ืืชืืงืฉ ืืืืฉืชืืฉ ืืืฆืื ืืืชื - "ื ืืฆืื 1425 ืจืฉืืืืช, ืืฆื?" ืืืฉืชืืฉ ืืืื ืืืืฉืื ืืฉื ืืช ืืช ืืื ืื ืืืืคืืฉ ืื ืืืืืฅ ืขื ืืคืชืืจ "ืืฆื". ืจืง ืืืงืจื ืืฉื ื ืืืืฆืขื ืื ืืืงืฉืืช ืืงืืืช ืชืืฆืืืช ืืืืฉืื ืืืืฉ ืฉื ืืืืืืช ืขื ืื "ืืืืืืื". ืืืงืจื ืื, ืืคื ืฉื ืืชื ืืจืืืช ืืงืืืช, ืชืฆืืจืื ืืืชืืืื ืขื ืืงืฉื ืืงืืืช ืกื ืืชืืฆืืืช ืืืืืคืืืืืืฆืื ืฉืื. ืฉืืื ืื ื ืืชื ืืืฆืื ืืื ืืืืช ืืงืืื ืืช ืงืื ืืช ืจืืืช. ืืจืืจ ืฉืื ืื ืชืจืืคืช ืคืื ืืืขืื ืืื, ืืื ืืืงืจืื ืคืฉืืืื ืืื ืืืืื ืืืืืช ืคืฉืจื ืืืื.
- ืืฉืชืืฉ ืืื ืืขื ืืืคืืฉ ืืื ืืืฆืื ืชืืฆืืืช ืืืกืคืืจ ืืืืืื, ืืืื Solr, ElasticSearch, Sphinx ืืืืจืื. ืืืื ื ืืขืื ืืื ืืช "ืืืืืื" ืืืขืฉืืช ืืืช ืืฆืืจื ืืขืืื ืืืื ืืฉื ืืืื ืืืคืื. ืืื ืคืืขืืื ืื ืืขื ืืืคืืฉ, ืืื ืืืงืจืื ืืืื ืื ืืขืืืื ืืืชืจ ืืืืืจื ืืืืข ืืืืืื, ืืืื ืฉืืืืช ืืืืืืืืช ืืฉ - ืื ื ืืฉื ืืืืืจ ื ืคืจื. ืืื ืื ื ืจืืฆื ืืืกื ืืช ืชืฉืืืช ืืืื ืืื ืฉืื ืืข ืืืืคืืฉ ืืื ื ืืืื ืืืืืช ืชืืืืฃ ืืืืกืื ืื ืชืื ืื ืืจืืฉื, ืืื ืืฉืืฉ ืืชืืกืคืช: ืื ืฉืื ืื ืืืกื ืื ืชืื ืื ืืจืืฉื ืืจืืืื ืื ืืืืคืืฉ ืืกืื ืืจื ืืืื ืืงืก ืืืืคืืฉ; ืื ืืข ืืืืคืืฉ ืืืจื ืืื ืืงืืื ืืื ืืจืืงืฆืื ืจืง โโืขื ืื ืืข ืืืืคืืฉ ืืืื ื ื ืืืฉ ืืืกื ืื ืชืื ืื ืืจืืฉื. ืืืช ืื ืงืืืืช ืืืฉืืืืช ืืืืชืจ ืืื ืืื ืืืฆื ืืืจืื ืืช ืืกื ืืจืื ืืื ืืฆืืจื ืืืืื ื. ืืื ืชืืื ืืืจืืฉืืช "ืืื ืืชืืืื". ืื ืืืื ืืื ืฉืื ืื ืืืกื ืื ืชืื ืื ืืจืืฉื ื"ืืชืืืืชื" ืืืืคืืฉ ืืื ื ืงืจืืื, ื ืืชื ืืืฆืืจ ืฉืืจืืช ืฉืืืคืฉ ืื ืืื ืืงืืช ืจืฉืืืืช ืฉืืฉืชื ื ืืืืจืื ื ืืืื ืืงืก ืืืชื. ืื ืืชื ืจืืฆื ืืช ืืื ืืชืืืื ืืงืฆืจ ืืืืชืจ ืืืคืฉืจื, ืืชื ืืืื ืืืืฉื ืืฉืื ืืื
ืชืืืช ืืืืจ ืืืฆื ืฉื ืขืกืงืืืช ืืฉืืื ืขืืืื ืื ืืฉืืจืืช ืืืืคืืฉ.
ืืืฆืืื
- ืืืฉืื ืืืืืคื ืืฆื ืืฉืจืช ืืื ืกืืืื ืืฉืืขืืชื ืืืืืื ื ืจืง ืขืืืจ ืืขืจืื ื ืชืื ืื ืฉืืืืื ืืืืืจืืช ืื ืคืฉืื ืืืืืื. ืืื ืืชืืื ืืืืืง ืืืืืืื ืืืื ืืืขืจืื "ืืืื" ืื "ืฆืืื ืืืจ", ืืื ืืืืชื ืคืืขื ืืคื ืืืืฉื ืืื:
- ืื ืงืืืช ืืืกืฃ ืฉืื ืฉื ื ืชืื ืื, ืชืื ืืชืืฉืืืช ืืืื ืืฉืจืช ืืืขืืจืช ืืจืฉืช, ืชืืืืช ืืช ืืจืืฉืืช ืืืืฆืืขืื ืืืจื ืืื, ืืื ืืขื ืืืืฉื ืืช ืืืืืคื ืืฆื ืืฉืจืช.
- ืืชืื ืืฆื ืฉืื ืื ืฆืคืืืืช ืืขืืืช ืืืฆืืขืื ืืืื ืืงืจืื, ืืืืืื ืฉืืฉ ืืขื ื ืชืื ืื, ืื ืืืกืืฃ ืื ืชืื ืื ืืื ืื ืืืื. ืื ืงืืืฆืช ื ืชืื ืื ืืืฉืื ืืขืชืื ืื ืชืขืืื ืขืื ืื ืงืืื ืืงืืืืช, ืขืืืฃ ืืืชืืื ืืช ืืืืืคื ืืื.
- ืื ืืื ืืจืืฉื ืงืคืื ืืช ืืฆื ืืขืกืง ืืืฆืื ืืช ืกื ืืชืืฆืืืช ืื ืืืฆืื ืืกืคืจื ืขืืืืื, ืืืืขืจืืช ืฉืืื ืืื ืื ืืข ืืืคืืฉ, ืขืืืฃ ืื ืืืืฉื ืืช ืื ืงืืืืช ืืืื ืืืฉืงืื ืืคืฉืจืืช ืืก' 2.
- ืื ืืฉื ื ืืจืืฉื ืืจืืจื ืืืืคืืฉ ืืืืื, ืืฉ ืื ืฉืชื ืืคืฉืจืืืืช ืืืื ืืืงืจืื ืืช ืืืืฆืืขืื:
- ืืื ืืืฉื ืืืืฉ ืืช ืื ืืืืืืืช ืืื ืคืขื ืฉืงืจืืืจืืื ื ืืืืคืืฉ ืืฉืชื ืื.
- ืืฉืชืืฉ ืืื ืืขื ืืืคืืฉ ืืืื Solr, ElasticSearch, Sphinx ืืืืจืื. ืืื ืฆืจืื ืืืืื ืฉืืื ืื ืืืื ืืืืืช ืชืืืืฃ ืืืกื ืื ืชืื ืื ืืจืืฉื, ืืืฉ ืืืฉืชืืฉ ืื ืืชืืกืคืช ืืืืกืื ืืจืืฉื ืืคืชืจืื ืืขืืืช ืืืคืืฉ.
- ืืื ืื, ืืืงืจื ืฉื ืืืคืืฉ ืคื ืื, ืืืืื ื ืืคืฆื ืืช ืฉืืืคืช ืืฃ ืชืืฆืืืช ืืืืคืืฉ ืืืช ืืกืคืืจื ืืฉืชื ืืงืฉืืช ืืงืืืืืช. ืกืคืืจืช ืืืืืืช ืขืฉืืื ืืืืืฉื ืืื ืจื ืืืชืจ ืืืฉืจ ืืฉืืช ืชืืฆืืืช, ืืขืื ืฉืืชืืฆืืืช ืืฉืืืืช ืืืชืจ ืืืฉืชืืฉ.
- ืื ืืชื ืืฉืชืืฉ ืืืกื ื ืชืื ืื ืฉื SQL ืืืืคืืฉ, ืื ืฉืื ืื ืงืื ืืงืฉืืจ ืืืืง ืื ืฆืจืื ืืืืืืง ืืืื ืขืืืจ ืืืฆืืขืื ืืืืืช ืื ืชืื ืื ืืืชืืืื (ืืืืจืืช ืืื ืคื ืืืกื ืื ืชืื ืื ืืื). ืืื ืื, ืืืืืฅ ืืืฉืชืืฉ ืื ืืืืจ ืืื ืืืฆืืข ืฉืืืืชื ืืื ืืืืคืขืื ืฉื ืืกืืก ืื ืชืื ืื, ืืืืืืื ื"ืื". ืื ืื ืืื ืืื ืืกืืจ ืขื ืชืืื ืืืช ืฉืืืืชืืช ืืฉืื ืืคืืชืื, ืืื ืฉื ืคื ืื ืชืื ืื ืืื, ืืืฆื ืขืฉืื ืืืฉืชื ืืช ืืืืคื ื ืืืจ.
ืืงืืจ: www.habr.com