要在创建并填充STS之后读取其内容,请使用或的SELECT_SQLSET功能,可以选择使用过滤条件。DBMS_SQLTUNEDBMS_SQLSET
SELECT_SQLSET使用PL / SQL 流水线表函数选择输出,该函数接受行的集合作为输入。您可以将表函数作为语句FROM列表中表操作符的操作数来调用SELECT。下表描述了一些SELECT_SQLSET功能参数。
表23-4 DBMS_SQLTUNE.SELECT_SQLSET参数
| 参数 | 描述 |
|---|---|
| 用于从STS的属性上定义的STS过滤SQL的SQL谓词 |
| 从共享的SQL区域中指定所选SQL的对象列表中存在的对象 |
下表描述了SQLSET_ROW对象的一些属性。查询时,这些属性显示为列TABLE(DBMS_SQLTUNE.SELECT_SQLSET())。
表23-5 SQLSET_ROW属性
| 参数 | 描述 |
|---|---|
| 解析SQL的架构 |
| 该SQL语句经过的总秒数 |
| 此SQL语句的缓冲区获取总数(数据库访问一个块的次数) |
假设条件
本教程假定以下内容:
- 您要显示名为的STS的内容
SQLT_WKLD_STS。 - 您正在使用
DBMS_SQLTUNE而不是DBMS_SQLSET。
要显示STS的内容:
- 在SQL * Plus或SQL Developer中,以具有必要特权的用户身份登录数据库。
- 使用该
TABLE功能查询STS内容。例如,执行以下查询:
COLUMN SQL_TEXT FORMAT a30 COLUMN SCH FORMAT a3 COLUMN ELAPSED FORMAT 999999999 SELECT SQL_ID, PARSING_SCHEMA_NAME AS "SCH", SQL_TEXT, ELAPSED_TIME AS "ELAPSED", BUFFER_GETS FROM TABLE( DBMS_SQLTUNE.SELECT_SQLSET( 'SQLT_WKLD_STS' ) );输出示例如下:
SQL_ID SCH SQL_TEXT ELAPSED BUFFER_GETS ------------- --- ------------------------------ ---------- ----------- 79f8shn041a1f SH select * from sales where quan 8373148 24016 tity_sold < 5 union select * f rom sales where quantity_sold > 500 2cqsw036j5u7r SH select promo_name, count(*) c 3557373 309 from promotions p, sales s whe re s.promo_id = p.promo_id and p.promo_category = 'internet' group by p.promo_name order b y c desc fudq5z56g642p SH select sum(quantity_sold) from 4787891 12118 sales s, products p where s.p rod_id = p.prod_id and s.amoun t_sold > 20000 and p.prod_name = 'Linen Big Shirt' bzmnj0nbvmz8t SH select * from sales where amou 442355 15281 nt_sold = 4 - (可选)根据用户特定条件过滤结果。
下面的示例显示语句,其中磁盘读取缓冲区的比率大于或等于50%:
COLUMN SQL_TEXT FORMAT a30 COLUMN SCH FORMAT a3 COLUMN BUF_GETS FORMAT 99999999 COLUMN DISK_READS FORMAT 99999999 COLUMN %_DISK FORMAT 9999.99 SELECT sql_id, parsing_schema_name as "SCH", sql_text, buffer_gets as "B_GETS", disk_reads, ROUND(disk_reads/buffer_gets*100,2) "%_DISK" FROM TABLE( DBMS_SQLTUNE.SELECT_SQLSET( 'SQLT_WKLD_STS', '(disk_reads/buffer_gets) >= 0.50' ) );输出示例如下:
SQL_ID SCH SQL_TEXT B_GETS DISK_READS %_DISK ------------- --- ------------------------------ ------ ---------- ------- 79f8shn041a1f SH select * from sales where quan 24016 17287 71.98 tity_sold < 5 union select * f rom sales where quantity_sold > 500 fudq5z56g642p SH select sum(quantity_sold) from 12118 6355 52.44 sales s, products p where s.p rod_id = p.prod_id and s.amoun t_sold > 20000 and p.prod_name = 'Linen Big Shirt'
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




