sql-server - 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)
谢谢,
解决方案
如果 shipping_date 字段类似于值插入日期,您可以在 shipping_date 上创建一个集群索引,我的意思是总是随着每个新行而增加
这将提高给定 shipping_date 范围内的读取性能
推荐阅读
- pine-script - 如何根据 pine 脚本中的 bool 输入禁用一些移动平均线?
- r - 不按列对数据值进行排序
- node.js - 第三方登录NodeJS?
- c# - 我应该为我的事件使用自定义对象吗?
- assembly - ARM 组装,评估替代延迟,有多接近很重要?
- c - 在 C 中嵌入 Lua 5.1,无法调试,VSCode 中的预启动任务错误
- django - 检查 Django 中是否存在多对多?
- angular - 如何在 ionic 5 中添加带有 virtualScroll 的搜索过滤器管道?
- java - 打印从 SuperClass 继承的字符串属性显示 Null
- vue.js - 无法读取未定义的属性(读取“减少”) - nuxtjs / vuejs