1.ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写
在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的
情况下,你必须选择记录条数最少的表作为基础表
2. ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必
须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE
子句的末尾.
3.SELECT子句中避免使用‘ * ‘
4.减少访问数据库的次数,如使用临时表
5.适当建立索引
推荐用GetRows()方法:GetRows()方法是将数据从 Recordset 复制到二维数组中,这是一个二维数组,第一个下标标识字段,第二个则标识记录号
所以rsArray = rs.GetRows()
rsArray(0, 0)就表示记录集第一行的第一字段值
rsArray(1, 0)就表示记录集第一行的第二字段值
你试试。祝你成功!
先用数据透视表+切片器来实现吧。如果速度还不理想,用powerquery+powerpivot来处理就行了。
当数据量达到几十万上百万级别,临时筛选肯定不是最佳解决办法。
需要对这些数据进行某种维度的统计汇总或图表化,否则,就算筛出来结果又有什么意义呢——人眼能从几千几万条数据中看出什么来?
如果powerquery+powerpivot还不能解决,就只有上数据库了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)