.
, , .
: Where, (WHERE BitColumn = 1 AND DateColumn IS NULL)
, , , , BitColum DateColumn, select, " " .
CREATE NONCLUSTERED INDEX IX_[Choose an IndexName]
ON TableName(BitColumn, DateColumn)
INCLUDE (col1, col2, col3)
, , , , WHERE BitColumn = 1 AND DateColumn IS NULL.
View CTE:
CREATE VIEW [Choose a ViewName]
AS
(
Select col1, col2, col3 FROM Table1 WHERE Some_Condition
UNION ALL
Select col1, col2, col3 FROM Table2 WHERE Some_Condition
.
.
.
)
, 35 , , clausule , 35 , .
: " 5-10 ". , -.
, BitColums DateColums, :
ALTER TABLE Table1 ADD ComputedFilterFlag AS
CAST(
CASE WHEN BitColum1 = 1 AND DateColumn1 IS NULL THEN 1 ELSE 0 END +
CASE WHEN BitColum2 = 1 AND DateColumn2 IS NULL THEN 2 ELSE 0 END +
CASE WHEN BitColum3 = 1 AND DateColumn3 IS NULL THEN 4 ELSE 0 END
AS tinyint)
2 ^ (X-1) X (ColumnX = 1 DateColumnX IS NOT NULL). , .
3, , : 1, 1 2, Date2. ComputedFilterFlag, ComputedFilterFlag .
8 , tinyint, -.
ComputeFilterFlag colum:
CREATE NONCLUSTERED INDEX IX_[Choose an IndexName]
ON TableName(ComputedFilterFlag)
INCLUDE (col1, col2, col3)
:
CREATE VIEW [Choose a ViewName]
AS
(
Select col1, col2, col3 FROM Table1 WHERE ComputedFilterFlag IN [Choose the Target Filter Value set]
UNION ALL
Select col1, col2, col3 FROM Table2 WHERE ComputedFilterFlag IN [Choose the Target Filter Value set]
.
.
.
)
, , 35 .
, , .