如何改进sql server 2005的此transact-sql脚本?
我有以下脚本:-如何改进sql server 2005的此transact-sql脚本?,sql,sql-server-2005,tsql,Sql,Sql Server 2005,Tsql,我有以下脚本:- SELECT TOP 1 column_01, COUNT(column_01) OVER(), (SELECT TOP 1 COUNT(column_02) FROM table_01 WHERE status = 1 and Column_02 = 1) FROM table_01 WHERE status = 1 ORDER BY column_02 desc, datetimestamp asc 表01结构:- colum
SELECT TOP 1
column_01,
COUNT(column_01) OVER(),
(SELECT TOP 1 COUNT(column_02) FROM table_01 WHERE status = 1 and Column_02 = 1)
FROM
table_01
WHERE
status = 1
ORDER BY column_02 desc, datetimestamp asc
表01结构:-
column_01 int (primary key)
column_02 bit
datetimestamp datetime
我正在努力实现的目标:-
这个查询正在做我想做的事情,但我感觉有很多改进查询的余地。那么,如何在性能和最佳实践方面改进此查询?谢谢您可以使用下面给出的SUM避免内联查询:
SELECT TOP 1
column_01,
COUNT(column_01) OVER(),
SUM(CASE WHEN column_02=1 THEN 1 ELSE 0 END) OVER()
FROM
table_01
WHERE
status = 1
ORDER BY column_02 desc, datetimestamp asc
@安德鲁:目前生产表有超过30万条记录,每天都在增长……你说的“类型os状态”是什么意思?我一直认为一个简单的案例比同等的搜索案例要快。如果这是真的,那么对于300K+行来说,这可能有点大。我不是在唠叨,事实上我想为自己澄清这件事。