您现在的位置是:首页 > 企业网站优化企业网站优化

Oracle优化与技巧有哪些呢?

江湖快报网2022-11-01 01:40:48【企业网站优化】人已围观

简介  1。我在做优化sql时,经常碰到使用in的语句,这时我们一定要用exists把它给换掉,因为Oracle在处理In时是按Or的方式做的,即使使用了索引也会很慢。
比如:
SELECT col1,col2,col

  1。我在做优化sql时,经常碰到使用in的语句,这时我们一定要用exists把它给换掉,因为Oracle在处理In时是按Or的方式做的,即使使用了索引也会很慢。

比如:

SELECT col1,col2,col3 FROM table1 a

WHERE a。
  col1 not in (SELECT col1 FROM table2)

可以换成:

SELECT col1,col2,col3 FROM table1 a

WHERE not exists

(SELECT @#x@# FROM table2 b

WHERE a。
  col1=b。col1)

2。ORACLE对CHAR类型处理的问题,在ORACLE中对CHAR的处理是自动添加空格,比如char

(8)存储'2007-11',则在后面自动添加空格,所以导致以下很多查询怪异问题(在表test中有字段month为char

(8),存储着'2007-11'一条数据)

这里再比较一下char,varchar,varchar2的区别:

a.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc,对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
  

b.CHAR的效率比VARCHAR2的效率稍高。

c.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。
  如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。

Tags:优化   哪些   技巧

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐