Oracle 11g 在表分区方面有一个新特性,称为按引用分区。
我想知道 Oracle 在连接两个表时或现在是否连接(嵌套循环连接或散列连接或...)来自适当分区的行?
如何确定这一点?
Oracle 11g 在表分区方面有一个新特性,称为按引用分区。
我想知道 Oracle 在连接两个表时或现在是否连接(嵌套循环连接或散列连接或...)来自适当分区的行?
如何确定这一点?
Oracle 在 DDL 查询中支持波斯 (Jalali) 日历,我可以轻松地说:
select to_char(register_date, 'YYYY-MM-DD', 'nls_calendar=persian')
from my_table;
我创建了一个表:
create table test_temp_times (
id number(18) not null,
xdate date not null,
str varchar2(20))
partition by range(xdate)
interval(NUMTOYMINTERVAL(1, 'MONTH'))
(partition p0 values less than (to_date('13920101', 'YYYYMMDD', 'nls_calendar=persian')))
enable row movement;
该表是正常创建的,但是当我向其中添加记录并且 oracle 创建新分区时,分区是:
create table TEMP_TIMES (
id NUMBER(18) not null,
xdate DATE not null,
str VARCHAR2(20)
)
partition by range (XDATE)
(
partition P0 values less than (TO_DATE(' 2013-03-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
partition SYS_P61 values less than (TO_DATE(' 2013-04-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
partition SYS_P62 values less than (TO_DATE(' 2013-05-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
partition SYS_P63 values less than (TO_DATE(' 2013-06-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
partition SYS_P64 values less than (TO_DATE(' 2013-07-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')));
如您所见,数据库将 NLS_CALENDAR 更改为gregorian
(与 13920101 同一天)并且每个分区都是根据gregorian
日历而不是persian
日历创建的。
有什么方法可以强制 Oracle 使用波斯日历来创建新分区?