Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
楼主: cuibq

最近一个项目,纠结firebird还是oracle,请提建议。

[复制链接]

该用户从未签到

发表于 2013-8-13 16:38:22 | 显示全部楼层
两张表的dwmc字段长度不一致啊,表结构设计不严谨,另外想单位名称一类的可以想办法用单位代码管理起来,避免手工输入人为造成不一致
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-8-13 17:42:46 | 显示全部楼层
bowa 发表于 2013-8-13 14:37
DWMC这个字段应该建立索引,两个表都应该有
你的sql语句可以这样写
select * from bmdwsj where dwmc i ...

好的谢谢,我试试建立索引,看查询速度提高多少。
第二张表bmgthsj中,dwmc重复的不多,不超过5000。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-8-13 17:45:40 | 显示全部楼层
bowa 发表于 2013-8-13 16:38
两张表的dwmc字段长度不一致啊,表结构设计不严谨,另外想单位名称一类的可以想办法用单位代码管理起来,避 ...

在两个表中,单位名称是唯一的。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-16 16:12:33 | 显示全部楼层
本帖最后由 aaa 于 2013-8-16 16:26 编辑

我觉得bowa说的很对,建立索引应该能解决问题。

不过in是sql里面比较耗资源的操作。一般如果能在设计表的时候,避免用到in语句操作我想是最好的吧。

否则貌似,我百度了一下,也没有啥太好的方案吧。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-16 16:19:42 | 显示全部楼层
高富帅用oracle,屌丝firebird.技术宅直接文件操作...
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-17 23:06:13 | 显示全部楼层
Firebird数据库没用过,不好评论它的性能

以oracle和mssql来看,oracle的确相当领先,但维护成本也相对的高

但不少高端企业系统都建议oracle
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-18 19:02:37 | 显示全部楼层
1.如果功能要求不多,以存数据为主,并安装方便,免费,请用Firebird,
2.如果要求功能强大,安装方便,并免费,请用PostgreSQL,
3.高帅富,要求功能强大,复杂,炫,请用Oracle
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-20 17:50:50 | 显示全部楼层
oracle中通常不建议去用distinct,在数据唯一的情况下增加了排序开销。
应该尝试用其他方式解决,如果数据库方面有疑问,可以咨询我。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-23 23:27:36 | 显示全部楼层
在两个表的DWMC字段上都做索引,然后用下面的SQL语句:

select a.* from bmdwsj a
inner join (select distinct DWMC from bmgthsj) b on a.DWMC = b.DWMC

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-23 23:30:18 | 显示全部楼层
FB的效率有时差别非常大,用对索引是关键!
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-7-3 08:37 , Processed in 0.023551 second(s), 6 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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