要从db表中取出一列数据进行排序显示,最多可达千万级的数据,现在我用sql,对于百万级数据可以在60s完成排序,请问还有更好的办法能提高效率么?千万级数据在10s内完成有可能么?用的是oracle9i和c语言编写取出数据后的显示,请问是用sql优化还是在c中写个排序算法可以实现10s内完成千万级数据排序呢?谢谢!

解决方案 »

  1.   

    数据完全从索引中取出是一种办法,索引中的字段位置结构跟你的排序字段的顺序一致不过,你的PGA要足够大
      

  2.   

    排序是優化里很頭痛的一個問題了。本身就要盡量避免大數據的排序,更何況你這里是千萬級數據量的排序。這里最好的方式是,優化你們的需求和業務邏輯。 上面majy兄弟,提到的PGA擴大,增大sort_size是沒有辦法的辦法了,也就是說只能通過提高硬件來解決叻。