首页 > 解决方案 > SQL 使用 Where 子句计算行数的最快方法

问题描述

我是 SQL Server 的新手,我在 SQL Server 中从一个大表中检索非常缓慢。

这是我的查询。

SELECT 
    COUNT(reference) 
FROM 
    shipment_table 
WHERE
    status = 'A' 
    AND shipment_date BETWEEN '2018-01-01' AND '2018-12-31'

我在谷歌做了一些研究,我找到了这段代码,但我不知道如何为此添加 WHERE 子句(where status = 'A' and shipping_date BETWEEN '2018-01-01' and '2018-12-31' )

SELECT
    Total_Rows= SUM(st.row_count)
FROM
    sys.dm_db_partition_stats st
WHERE
    object_name(object_id) = 'shipment_table' AND (index_id < 2)

谢谢,

标签: sql-serverselectcount

解决方案


如果 shipping_date 字段类似于值插入日期,您可以在 shipping_date 上创建一个集群索引,我的意思是总是随着每个新行而增加

这将提高给定 shipping_date 范围内的读取性能


推荐阅读