没有源代码的情况下,BDE有没有办法改别的方式连接
没有源代码的情况下,BDE有没有办法改别的方式连接
老软件开发的,查询效率太慢,查1w条数据用5分钟
没有软件源代码如何优化
[解决办法]
优化速度方法很多的,不知你想如何进行,我所知的
1. 硬件上优化(服务器端: 用更好的机器,例如用更快的电脑(多核),磁盘阵列,群集,更快的网络,如千兆)
2. 在硬件优化基础上,调整数据库服务器参数(例如: Oracle 可通过调整内存<当然要有足够的内存> db_block_buffers,shared_pool_size 等大幅提高性能,SQL SERVER 也可换成 win2008 上的 64 位 SQL 2008 ,然后通过调数据库缓存来大幅提高性能)
3. 通过数据库软件方法,例如索引进行优化,当然,由于软件是别人写的,所以你只能通过数据库的优化分析工具看看那些表需要进行索引及优化(例如: SQL SERVER 可通过优化分析器来查到那些表最消耗时间,从而建正确的索引)
4. 调整客户端的参数,例如你是 BDE 的,可通过调整 BLOB SIZE,BLOB TO CACHE,SCHEMA CACHE 来调整,不过影响有限
[解决办法]
如果没源码,是没办法的,因为这是客户端程序没写好. 例如: 打开表查询时,没有使用 disablecontrol , 或者使用某些控件,查询 1w 条数据,是全部把 1w 条数据传到客户端等.
而 SQL SERVER 自己的查询分析器,查询时是进行了优化的,例如查询 1w 条数据,它可能只显示 100 条,所以你就认为快,而当你翻页时,它再取数据的(你自己可以试试看)
而你的旧程序没有使用这方面优化,所以就慢了
[解决办法]
如果程序写的不会,比如是用filter,那是没办法的,我自己试过用filter,一条记录好几秒,后来将filter改为where语句就好了