帮人写个数据库软件,数据库在阿里云服务器上。几个人共同使用。直接用adoconncetion连接的。
基础数据是excel(可能会分2轮才能完善一条记录,每轮格式不固定操蛋)。然后用软件保存到阿里云。隔段时间录一次,每次几千条。
1,申购明细表:代码,名称,交易员名称,配售对象名称,股东代码,是否有效,拟申购价格(元),拟申购价格(元),资产,发行价格(元),配售股数(股),中签金额,中签率,机构类型
2,配售对象表:交易员名称,配售对象名称,股东代码 注:此数据用来补充完善公告数据,数据整理可能有用。
3,统计表:名称,资产最大值,有效报价笔数,报价笔数, 准确率大牛们看看我这思路对不对,有没有更优解1,把每条记录保存到sql语句中,满200条向服务器发送数据,直至发完。
2,有的时候可能股东代码或其它没有,要完善数据。 发到服务器临时表中,用过程处理好再查询回来保存。
3,因为每次录入新数据后统计表才会发生变化,我是否要建个统计表来取代视图?每次录入后重新生成统计表?明显感觉实体表和视图查询速度差不多,我去?
4,数据量大的时候查询较慢,这个有没其它办法?

解决方案 »

  1.   

    200条记录插入放到一个事务里面,会快不少,新版的delphi里面的数据库访问框架firedac还支持批量操作,会更快;视图一般也不存储物理数据,实际上还是用的背后的实体表,自然速度没多少区别;查询慢一般可以先看下生成的数据库查询计划,看看里面是不是有记录比较多的表的扫描读取,有没有重复次数很多的重复计算。表扫描引起的慢可以通过建立适当的索引来看下能否缓解,重复计算的部分可以单独放到一个cte里面。如果数据量实在太大,还可以考虑把数据计算的中间结果存起来,这样查询的时候直接利用中间结果,速度就会快很多。一点建议,希望能有所帮助。