Oracle面试题

fadsf

4.绑定变量的优缺点及使用场合分别是什么?

优点:能够避免SQL的硬解析以及与之相关的额外开销(SQL语法、语义的分析、逻辑分析、生成较佳的执行计划等开销),提高执行效率。

缺点:如果在表存在数据倾斜、数据分布不均匀列上使用绑定变量,会造成优化器忽略其具体值,导致生成错误低效的执行计划,降低执行效率。

使用场合:

OLTP(Online transaction processing联机事务处理)系统:在OLTP系统中SQL语句重复执行频度高,但处理的数据量较少,结果集也相对较小,尤其是使用表上的索引来缩小中间结果集,其解析时间通常会接近或高于执行时间,因此该场合适合使用绑定变量。

OLAP(Online analytical processing联机分析处理)系统:在OLAP系统中,SQL语句执行次数相对较少,但返回的数据量较大,因此多数情况下倾向于使用权标扫描更高效,其SQL语句执行时间远高于其解析时间,因此使用绑定变量对于总响应时间影响不大。而且增加生成低效执行计划的风险。即在OLAP系统中使用字面量的性能高于使用绑定变量。

5.Oracle数据库清空WF.TABLE_WF表中的数据分别有哪几种方法?请写出SQL语句,并说明语句区别是什么?

扫描二维码关注公众号,回复: 94355 查看本文章

DELETE FROM WF.TABLE_WF;

TRUNCATE TABLE WF.TABLE_WF;

区别

1.delete from后面可以写条件,truncate不可以。

2.delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日至里面只记录页释放,简言之,delete from更新日志,truncate基本不,所用的事务日志空间较少。

3.delete from删空表后,会保留一个空的页,truncate在表中不会留有任何页。

4.当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。truncate始终锁定表和页,而不是锁定各行。

5.如果有identity产生的自增id列,delete from后仍然从上次的数开始增加,即种子不变,而truncate后,种子会恢复初始。

6.truncate不会触发delete的触发器,因为truncate操作不记录各个行删除。

SQL Delete 语句(删除表中的记录)

DELETE语句用于删除表中现有记录。

SQL DELETE 语句

DELETE 语句用于删除表中的行。

SQL DELETE 语法

DELETE FROM table_name WHERE condition;

请注意

删除表格中的记录时要小心!

注意SQL DELETE 语句中的 WHERE 子句!

WHERE子句指定需要删除哪些记录。如果省略了WHERE子句,表中所有记录都将被删除!

SQL TRUNCATE TABLE 命令

SQL TRUNCATE TABLE 命令用于删除现有数据表中的所有数据。

你也可以使用 DROP TABLE 命令来删除整个数据表,不过 DROP TABLE 命令不但会删除表中所有数据,还会将整个表结构从数据库中移除。如果想要重新向表中存储数据的话,必须重建该数据表。

语法:

TRUNCATE TABLE 的基本语法如下所示:

TRUNCATE TABLE table_name;

6.Oracle数据库中使用(length())函数“返回字符串长度”,使用(UPPER())函数“将所有字符变为大写”,使用(SUBSTR())函数“截取字符串”,使用(TO_CHAR())函数“将数据类型转换为字符型”,使用(SYSDATE)函数“获取当前数据库时间”,使用(select * from v$version;)函数“查看数据库版本”

7.Oracle数据库中SEQUENCE是什么?请编写建立SEQUENCE的语句。

1 CREATE SEQUENCE seqTest
2 INCREMENT BY 1 -- 每次加几个
3 START WITH 1 -- 从1开始计数
4 NOMAXvalue -- 不设置最大值
5 NOCYCLE -- 一直累加,不循环
6 CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE

8.Oracle数据库中如何获取WF.TABLE_WF表中的随机记录,每次取20条,请编写语句。

dsfdsafs

猜你喜欢

转载自www.cnblogs.com/denggelin/p/8975301.html