Oracle OCP 1Z0-050(26题)解析

Oracle OCP 1Z0-050(26题)解析

QUESTION 26:

Evaluate the following code:

SQL>VARIABLE task_name VARCHAR2(255);

SQL>VARIABLE sql_stmt VARCHAR2(4000);

SQL>BEGIN

:sql_stmt := 'SELECT COUNT(*) FROM customers

WHERE cust_state_province =''CA''';

:task_name := 'MY_QUICKTUNE_TASK';

DBMS_ADVISOR.QUICK_TUNE(DBMS_ADVISOR.SQL ACCESS_ADVISOR, :task_name, :sql_stmt);

END;

What is the outcome of this block of code?

A. It creates a task and workload but does not execute the task.

B. It produces an error because the SQL Tuning Set has not been created.

C. It produces an error because a template has not been created.

D. It creates a task and workload, and executes the task.

Answer: D

解析:

参考Oracle官方文档:

https://docs.oracle.com/cd/E11882_01/server.112/e41573/advisor.htm#PFGRF94918

 

Using SQL Access Advisor in Enterprise Manager or API, you can do the following:

  • Recommend materialized views and indexes based on collected, user-supplied, or hypothetical workload information.

  • Recommend partitioning of tables, indexes, and materialized views.

  • Mark, update, and remove recommendations.

In addition, you can use SQL Access Advisor API to do the following:

  • Perform a quick tune using a single SQL statement.

  • Show how to make a materialized view fast refreshable.

  • Show how to change a materialized view so that general query rewrite is possible.

 

To tune a single SQL statement, the QUICK_TUNE procedure accepts as its input a task_name and a SQL statement. The procedure creates a task and workload and executes this task. There is no difference in the results from using QUICK_TUNE. They are exactly the same as those from using EXECUTE_TASK, but this approach is easier to use when there is only a single SQL statement to be tuned. The syntax is as follows:

DBMS_ADVISOR.QUICK_TUNE (
   advisor_name           IN VARCHAR2,
   task_name              IN VARCHAR2,
   attr1                  IN CLOB,
   attr2                  IN VARCHAR2 := NULL,
   attr3                  IN NUMBER := NULL,
   task_or_template       IN VARCHAR2 := NULL);

The following example shows how to quick tune a single SQL statement:

VARIABLE task_name VARCHAR2(255);
VARIABLE sql_stmt VARCHAR2(4000);
EXECUTE :sql_stmt := 'SELECT COUNT(*) FROM customers 
                      WHERE cust_state_province =''CA''';
EXECUTE :task_name  := 'MY_QUICKTUNE_TASK';
EXECUTE DBMS_ADVISOR.QUICK_TUNE(DBMS_ADVISOR.SQLACCESS_ADVISOR,
              :task_name, :sql_stmt);

See Oracle Database PL/SQL Packages and Types Reference for more information regarding the QUICK_TUNE procedure and its parameters.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值