四年前写的一个内容管理系统,应用在公司内部网上,昨天DBA说其中的SQL语句未使用参数化的调用,导致服务器负担加重,资源占用大。并列出了几个占用资源较大的语句,类似如下: SELECT ART_ID, ART_TITLE, ... FROM USR_NEWS.VIEW_ARTICLE WHERE ART_ISPASSED=''''Y'''' and ART_CLASS=4066 ORDER BY ART_PASSTIME DESC 其中where子句中的ART_CLASS的值是先确定后组合好这样整条sql语句,然后通过ado去执行的。因参数值不同,在服务器端会产生不同的sql语句,如果有10万个值,服务器就会为这10万条sql语句创建缓存。DBA说要改为art_class=:V方式(oracle数据库),我用与访问存储过程类似的代码来写,如下: dim userid userid=1234 ... Command1.CommandText = "SELECT * from users where userid=:V" Command1.Parameters.Append Command1.CreateParameter(":v", , ,,userid) set rs = Command1.Execute