1.范围分区时,如果查询条件中包含了用作分区的列的值,那么是不是说我在sql语句中就无需指定分区了?也就是说,如果我在sql语句中不想指定任何分区的话,该如何做呢?
2.在建立分区表时,是否一定要将每个分区指定为不同的表空间?如果不指定,统一用一个的话,效率如何?
3.用范围-散列方式的复合分区方式,是否速度会比单一的范围分区好些?为何?多谢了!
2.在建立分区表时,是否一定要将每个分区指定为不同的表空间?如果不指定,统一用一个的话,效率如何?
3.用范围-散列方式的复合分区方式,是否速度会比单一的范围分区好些?为何?多谢了!
在建立分区时,如果使用的是hash的方式,不必对每个分区指定表空间,系统会循环利用你指定的表空间。这种方式的效率也不一定就比手动为每个分区指定表空间低。
3.用范围-散列方式的复合分区方式,是否速度会比单一的范围分区好些?为何?
不一定,使用哈西函数进行散列,你就不能手动定义那些数据应该存到那个分区去。删除和查询的时候,有可能会造成麻烦。我觉得还是需要根据需求,合理的使用分区策略。
如果不写的话,应该是先全件取出记录,然后在通过where条件筛选。
这样的话,通俗点说执行到where的时候,表的全集已经被取出来了。还谈什么分区呢?
如果指定了分区,那么只取出指定分区的全部数据,oracle通过这个来有效的减少检索范围。
应该这样解释吧!
当你用时间段来查找的时候,oracle会自动查找where条件里面时间段所在分区的数据。
当然你也可以指定查哪些分区的数据。