请教SQL执行一条COUNT语句,如何提供高效率,降低CPU消耗。 sql 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CREATE INDEX INX_Table_APP_Data18ON [Table_APP_Data18]([owner],[app],[jiqi]) 若只有一个字段,使用COUNT(*);若有主键,使用COUNT(主键);若没有主键,使用COUNT(1)。我做大数据时,一般再建一个记录统计计数表,当数据表增加一条记录时,统计表计数也对应+1;数据表删除一条记录时,统计表计数也对应-1。在统计记录时,直接SELECT 统计表计数字段。 从语句看,消耗CPU的主要是编译,聚合计算。可以定义一个存储过程,带入参数。 [owner]=@owner and [app]=@app] and [jiqi]=@app]如果对统计不严格,可以使用nolock,或者查询sysindexes的rows剩下的,加索引吧。附加:字段的类型是什么就给什么样的值。给不同的类型的值系统会隐式转换,不仅耗CPU,索引页用不了 谢谢你的解答。这个表使用周期就半个月,感觉没必要单独用一个表做统计(加删都要写),既然MSSQL提供COUNT和索引等功能干什么用笨方法那。 100万条数据量并不大。CPU占用居高不下应该不是没有索引的问题,当然加了索引会提高执行效率。问题主要应该是在asp查询请求时,针对不同的owner, app值,服务器都需要做一次硬解析。不能够使用cache中已有的解析结果。改asp的查询语句为绑定变量形式,提升效果应该会好。 以前有个误区任务count(*), count(1), count(PK)的效率是不一样的,不知道SQL server方面如何,Oracle中是无差别的。 这种情况sql语句该怎么写呢? sqlserver系统存储过程大全 请问能不能通过SQL命令设置和查询sql server 登陆验证方式 请问关于数据库表锁定的问题 怎么样在远程对服务端上的存储过程debug,回答正确,请到下文指定帖子拿分20 数据库置疑急啊!!!!在线等 求个job的例子。要求定时删除某个表中过期的数据。 一个小问题,分数很好拿 在SQL SERVER 7。0中如何建一个表? select的问题,谢谢了 【求助】怎么从一张表获取信息后展开到另一张表 求大神指点一个sql语句
ON [Table_APP_Data18]
([owner],[app],[jiqi])
若有主键,使用COUNT(主键);
若没有主键,使用COUNT(1)。我做大数据时,一般再建一个记录统计计数表,当数据表增加一条记录时,统计表计数也对应+1;数据表删除一条记录时,统计表计数也对应-1。在统计记录时,直接SELECT 统计表计数字段。
[owner]=@owner and [app]=@app] and [jiqi]=@app]如果对统计不严格,可以使用nolock,或者查询sysindexes的rows剩下的,加索引吧。
附加:字段的类型是什么就给什么样的值。给不同的类型的值系统会隐式转换,不仅耗CPU,索引页用不了
谢谢你的解答。这个表使用周期就半个月,感觉没必要单独用一个表做统计(加删都要写),既然MSSQL提供COUNT和索引等功能干什么用笨方法那。
CPU占用居高不下应该不是没有索引的问题,当然加了索引会提高执行效率。问题主要应该是在asp查询请求时,针对不同的owner, app值,服务器都需要做一次硬解析。不能够使用cache中已有的解析结果。
改asp的查询语句为绑定变量形式,提升效果应该会好。
以前有个误区任务count(*), count(1), count(PK)的效率是不一样的,不知道SQL server方面如何,Oracle中是无差别的。