Oracle数据库操作与优化技巧总结
"Oracle数据库操作与优化技巧" 在Oracle数据库管理中,优化是提升系统性能的关键环节。以下是一些核心的Oracle操作和优化方法: 1. **NLS_PARAMETERS查询**:`SELECT * FROM v$nls_parameters` 可以查看当前会话的NLS(National Language Support)参数设置,这对于理解数据的格式和处理方式非常重要。 2. **日期格式设置**:`ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd';` 用于修改当前会话的日期显示格式,确保日期的读取和存储符合预期。 3. **参数修改**: - `ALTER SYSTEM SET ... SCOPE=SPFILE` 更新参数到SPFILE,重启实例后生效。 - `ALTER SYSTEM SET ... SCOPE=BOTH` 实时修改并更新到SPFILE,重启后仍然有效。 - `ALTER SYSTEM SET ... SCOPE=MEMORY` 只改变内存中的参数,重启后失效。 4. **NULL值处理**:在查询中,`NULL`值的比较需要特殊处理,例如使用 `IS NULL` 或 `IS NOT NULL`。`LIKE '%\_%' ESCAPE '\'` 是用于在字符串匹配中处理通配符 `_` 的方法。 5. **SQL优化**: - `ORDER BY` 用于排序结果集,`ORDER BY + DESC/ASC` 指定降序或升序排列。 - `NULLS LAST` 或 `NULLS FIRST` 可以指定在排序中`NULL`值的位置。 - `LENGTH()`、`LENGTHB()`、`UPPER()`、`LOWER()`、`INITCAP()` 和 `SUBSTR()` 是常用的字符串函数。 - `INSTR()` 用于查找子串在主串中的位置,`LPAD()` 和 `RPAD()` 用于填充字符串两侧的空格。 - `REPLACE()` 函数可以替换字符串中的指定字符。 - `ROUND()` 对数字进行四舍五入,而 `TRUNC()` 进行截断,两者在处理浮点数精度时非常有用。 6. **性能优化**: - 使用 `APPEND` 提示在插入数据时避免全表扫描,提高插入速度。 - `DESC` 在查询中不仅可以用于排序,也可以用于快速获取表结构信息。 7. **文件操作**:在SQL*Plus中,`SPOOL` 命令用于将输出重定向到文件,如 `SPOOL C:\aa.txt`,然后 `SPOOL OFF` 结束记录。 这些是Oracle数据库操作的基本技巧和优化方法,实践中的优化还需要结合索引策略、SQL调优、表分区、物化视图、归档日志管理等多个方面。通过深入理解和应用这些知识,可以有效地提升Oracle数据库的运行效率和稳定性。
spool off;
oracal出现异常就先连到sysdba然后startup一下
select * from v$nls_parameters;//查询常用参数
alter session set NLS_DATE_FORMAT='yyyy-mm-dd';
alter session 只对当前会话生效;
alter system ......scope=spfile 修改spfile,重启后生效;
alter system ......scope=memory修改当前的实例,不修改spfile,重启后失效;
alter system ......scope=both(默认) 当前实例生效且修改spfile。
null与任何值比较返回的都是null
like '%\_%' escape '\' //转义
SQL> --a命令 append
SQL> a desc
order by+多列时 先按离order by最近的一列排序 再依次排序
order by+多列 并有desc或asc关键字时 desc只对离他最近的列有效
nulls last
length() lengthb() upper() lower() initcap() substr(str,num)从num开始到最后一个
substr(str,num1,num2)从num1开始剪切num2位
instr(a,b) 从a中,查找b,找到返回下标;否则返回0
lpad 左填充 rpad右填充
SQL> select lpad('abcd',10,'*') 左,rpad('abcd',10,'*') 右
2 from dual;
select replace('hello world','l','*') from dual;
REPLACE('HE
-----------
he**o wor*d
2 ROUND(45.926, -1) 四,ROUND(45.926, -2) 五
3 from dual;
一 二 三 四 五
---------- ---------- ---------- ---------- ----------
45.93 45.9 46 50 0
已写入 file afiedt.buf
1 select TRUNC(45.926, 2) 一,TRUNC(45.926, 1) 二, TRUNC(45.926, 0) 三,
2 TRUNC(45.926, -1) 四,TRUNC(45.926, -2) 五
3* from dual
SQL> /
一 二 三 四 五
---------- ---------- ---------- ---------- ----------
45.92 45.9 45 40 0
SQL> select ROUND(SYSDATE,'MONTH'), ROUND(SYSDATE,'year') from dual;
ROUND(SYSDATE, ROUND(SYSDATE,
-------------- --------------
01-8月 -13 01-1月 -14
group by rollup(a,b)
=
group by a,b
+
group by a
+
group by null
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦