![]() |
1
1
第七使徒 根据你提供的内容,很难说出任何话。当您将数据类型更改为nvarchar2时,是否已检查估计基数和/或解释计划是否发生了更改?您可能需要阅读以下博客文章,看看是否可以找到潜在客户 http://joze-senegacnik.blogspot.com/2009/12/cbo-oddities-in-determing-selectivity.html |
![]() |
2
2
首先,做一个
字符集可能很复杂。可以有单字节字符集、固定大小多字节字符集和可变大小多字节字符集。查看Unicode描述 here 其次,如果要将单字节字符集中的字符串连接到双字节字符集中的字符串,则可以进行选择。您可以进行二进制/字节比较(如果比较单字节字符集和双字节字符集,通常不会匹配任何内容)。或者,您可以做一个语言比较,这通常意味着一些CPU成本,因为一个值被转换成另一个值,而且经常是索引使用失败。 索引是按顺序排列的,a、b、c等,但_等字符可能会根据语言顺序在不同的地方落下。假设索引结构将_放在A和B之间,然后进行语言比较。该比较的语言可能在z之后加上_,在这种情况下,不能使用索引。(请记住,您的情况可能是介于两者之间,而不是=)。 简言之,在模式和中心存储中,您将需要大量的准备工作,以实现不同字符集之间的有效连接。 |
![]() |
3
1
它可能不再能够使用以前可以使用的索引。正如纳伦德拉建议的,检查解释计划,看看有什么变化。一旦中心化存储被更改,索引就可能再次可用。我建议测试这条路径。 |
![]() |
4
0
正确设置NLS语言初始化参数对于正确的数据转换至关重要。NLS语言初始化参数指定的字符集应反映客户端操作系统的设置。正确设置nls_lang可使客户机操作系统代码页正确转换为数据库字符集。当这些设置相同时,Oracle假定发送或接收的数据编码在与数据库字符集相同的字符集中,因此不执行验证或转换。如果需要转换,这可能会导致数据损坏。 |