起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 999|回复: 5

【重要】在SQL Server数据库上,大数据量的SQL语句的写法**

[复制链接]
发表于 2006-8-14 10:07:40 | 显示全部楼层 |阅读模式
X3平台上,全面采用了Java平台作为应用服务端,数据库访问是通过JDBC来进行的,针对SQL Server在大量数据量下,我们做了测试,不同的SQL语句的写法会造成速度差异很大。

对数据量比较大的查询,为了提高查询的效率,建议采用以下方式:
(1)对要查询的字段建立索引
(2)尽量不要使用paramter的方式,这样会引起查询速度的下降。

例子如下:
     (a) select * from oneTable from onefield=?
     以上这种方式会引起查询速度的降低。主要是因为jdbc驱动的问题。
     可以做以下修改:
     (b) declare @a varchar(20) select @a=? select * from oneTable where oneField=@a
     或者直接采用拼装sql的方式:
     (c) "select * from oneTable where oneField=" + ...
     最后可以将oneField建立索引,这样会很大程度上加快查询速度。
(3)我们的测试结果如下:
     对200万条数据进行以上查询。
     采用方式         所需时间(毫秒)   是否建立索引
     a                 2000左右              否
     a                 1000左右              是
     b                 60左右                是
     c                 60左右                是                                         
     对400万条数据进行以上查询。
     采用方式         所需时间(毫秒)     是否建立索引
     a                 4000左右              是
     b                 60左右                是
     c                 60左右                是
     c                 2000左右              否

推荐采用c的方式来修改,因为采用b方式会造成平台上的表字段不能正常的识别出来。

针对Oracle数据库的测试正在进行中,稍后公布结果
回复

使用道具 举报

发表于 2006-8-16 13:25:01 | 显示全部楼层
非常感谢
回复 支持 反对

使用道具 举报

发表于 2006-8-17 23:03:14 | 显示全部楼层
为人民服务!
回复 支持 反对

使用道具 举报

发表于 2006-8-20 08:28:35 | 显示全部楼层
以前数据更新在平台做数据量大了,慢的很
后来全部改成存储过程调用
回复 支持 反对

使用道具 举报

发表于 2006-8-25 17:46:08 | 显示全部楼层
非常高兴,希望多提供一些这方面的资料。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-30 17:43:22 | 显示全部楼层
2611版本已经在服务器端针对SQL Server数据库中用到参数的SQL语句做了特殊的处理,可以放心的使用参数。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-5-19 09:16 , Processed in 0.047225 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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