仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2618|回复: 20
打印 上一主题 下一主题

[学习教程] ASP网页编程之编程优化杂谈(一)

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:35:44 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.编程|优化   1. 在SQL中, 假如选择某字段不为空的纪录有两种写法
where columnExample <> ''
或是
where columnExample is not null

经测试, 后者比前者要快好几倍(columnExample经由索引)

2. 在ASP中, 利用GetRows与不利用GetRows而直接用Record来轮回挪用, 二者其实有所不同, 上面是测试
挪用纪录数: 484

利用GetRows, 然后用数组来显示, 发明单花在GetRows的运算上花了约620毫秒. 总共花了711毫秒

直接用RecordSet来轮回挪用, 总共花了931毫秒

所以建议人人利用GetRows, 出格是要显示良多的前往纪录时, 然而它会占用一局部一时内存.

在直接利用RecordSet时, 大局部工夫是消费在游标的挪动上, 也许占了90%以上

3. 关于SQL中Count的设法

近日我对一大型数据库停止编程, 发明我的一段法式的不管怎样优化数据库, 怎样优化源法式, 履行终了最少需求
600毫秒以上, 而别一段只需求100多毫秒. 上面是两段代码的前提束缚(AgentID已索引):

1. where AgentID = 0 花了600多毫秒
2. where AgentID > 0 只需100多毫秒

真的是很奇异, 我入手下手了寻觅消费工夫的本源, 一忽儿, 我就找到了本来是Count函数, 它花了快要500毫秒来停止
纪录总数统计, 对数据库的AgentID的值停止剖析, 又发明AgentID的98%的值都是0, 看来合适的纪录越多, Count
停止的工夫就会越长.
后来我想一想, 不知SQL是不是会主动停止反盘算, 也就是它先盘算不合适的条数, 然后盘算合适的而返:
1. where AgentID < 1 由于AgentID最不值是0, 所以用此前提也一样
最初的工夫消费还是600多毫秒, 没有任何须进.

所以只要一个处理计划, 那就是手动停止, 假如纪录总数已知, 则只需求盘算不合适前提的纪录, 然后 总数减
去不符纪录便可失掉查找纪录的总数量.

上面是几个Count停止的工夫测试:

Count(*) 无前提 前往说共有纪录145539, 费时恰好100毫秒

count(*) where name is not Null and Agent = 0 前往说纪录有145530, 费时431-441毫秒
(name is not null去失落的后只需求履行工夫110)

Count(*) where name is not Null 前往纪录共有145539, 费时100-110毫秒

以上的测试AgentID都是答应Null值的情形

</p>  对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。
灵魂腐蚀 该用户已被删除
沙发
 楼主| 发表于 2015-3-10 23:42:30 | 显示全部楼层
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-10 18:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表