无法对DATE列进行最基本的范围分区修剪类型?

2020-08-18 17:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 是否在DATE列上进行...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

是否在DATE列上进行分区以进行分区修剪?

但是它应该:

https://help.sap.com/查看器/6b94445c94ae495c83a19646e7c3fd56/2.0.04/zh-CN/8dd866a688ec4914a074727a2c800142.html

2416490-常见问题解答:SAP S/4HANA中的SAP HANA数据老化

有一张桌子:

创建表MYPART(XINTEGER整数

,YDATE DATE

,ZVARCHAR2 VARCHAR(2)

);

...添加主键:

ALTER TABLE MYPART添加约束MYPART主键(XINTEGER

,YDATE);

...在YDATE的DATE列上添加分区

按范围(YDATE)更改表MYPART分区(分区'01 .01.2000'<=值<'DD.MM.YYYY')

...并获得:

在32 ms 321 µs中无法执行"按范围(YDATE)更改表MYPART分区(分区'01 .01.2000'<=值<'DD.MM.YYYY')"。 SAP DBTech JDBC:[2048]:列存储错误:无法更改分区:[2594]常规分区错误;处理分区规范时出错。 值'01 .01.2000'无法转换为整数。


与其他人一起尝试

按范围(YDATE)更改表MYPART分区(分区'01 .01.2000'<=值<'DD.MM.YYYY',其他部分)

...并获得相同的结果:

在35 ms 629 µs内无法执行"按范围(YDATE)更改表MYPART分区(分区'01 .01.2000'<=值<'DD.MM.YYYY',...")。SAP DBTech JDBC:[ 2048]:列存储错误:无法更改分区:[2594]常规分区错误;处理分区规范时出错。值'01 .01.2000'无法转换为整数。

可能认为格式化会有所帮助:

按范围(YDATE)更改表MYPART分区(分区to_DATE('01 .01.2000','DD.MM.YYYY')<=值

...并获得:

无法执行"按范围(YDATE)更改表MYPART分区(分区to_DATE('01 .01.2000','DD.MM.YYYY')<= ..." SAP DBTech JDBC:[257]:sql语法 错误:" to_DATE"附近的语法不正确:第1行col 59(在pos 59)

DATE列上没有范围分区?

最佳马丁

4条回答

是的,我完全了解PARTITION子句,只是无法理解您的意思 通过"。 .. drop到特定分区... "。

" 是否可以从特定分区读取?"

现在,此选项的目的不是调整性能,而是提供(相对)低级控制来读取数据的选项。

一个例子是 从表中提取数据,该表中并非所有分区都可以一起加载,或者一个分区根本不可读(例如由于数据损坏)。

作为调整机制,这是垃圾。

>

当一行DBA决定对表进行重新分区时,您将做什么? 重写所有的SQL代码吗?

看看您的测试用例-您正在比较数十毫秒的差异来查看单个执行。

并且在分区修剪优化过程中,运行时不会随数据量扩展,因此很容易在误差范围内。 两种执行计划都表明,数据是从相同的分区中获取的。

有效地,您将动态和自动分区修剪交换为某些东西,只要以最小的方式更改了分区方案,该东西就会立即中断( 并可能产生错误的结果集,因为没人会意识到这一点-不会出现错误消息!),并节省了20毫秒的准备时间...不是一个很好的交换。

一周热门 更多>