fadsf
4.绑定变量的优缺点及使用场合分别是什么?
优点:能够避免SQL的硬解析以及与之相关的额外开销(SQL语法、语义的分析、逻辑分析、生成较佳的执行计划等开销),提高执行效率。
缺点:如果在表存在数据倾斜、数据分布不均匀列上使用绑定变量,会造成优化器忽略其具体值,导致生成错误低效的执行计划,降低执行效率。
使用场合:
OLTP(Online transaction processing联机事务处理)系统:在OLTP系统中SQL语句重复执行频度高,但处理的数据量较少,结果集也相对较小,尤其是使用表上的索引来缩小中间结果集,其解析时间通常会接近或高于执行时间,因此该场合适合使用绑定变量。
OLAP(Online analytical processing联机分析处理)系统:在OLAP系统中,SQL语句执行次数相对较少,但返回的数据量较大,因此多数情况下倾向于使用权标扫描更高效,其SQL语句执行时间远高于其解析时间,因此使用绑定变量对于总响应时间影响不大。而且增加生成低效执行计划的风险。即在OLAP系统中使用字面量的性能高于使用绑定变量。
5.Oracle数据库清空WF.TABLE_WF表中的数据分别有哪几种方法?请写出SQL语句,并说明语句区别是什么?
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