找到 34423 篇文章 适用于编程

如何在 Oracle 中插入和检索日期?

Kiran P
更新于 2020-12-05 06:03:24

21K+ 浏览量

问题:您想将日期插入表中并检索它们。解决方案Oracle 默认使用格式 DD-MON-YYYY 表示日期,其中DD 表示两位数的日期。MON 表示月份的前三个字母,例如 FEB。YYYY 是四位数的年份,例如 1968让我们来看一个将行添加到 customers 表的示例,该表包含一个名为 dob 的 DATE 列。以下 INSERT 将一行添加到 customers 表,并将 dob 列设置为 05-FEB-1968:示例INSERT INTO customers ( customer_id, first_name, last_name, dob, phone) VALUES (7, 'James', 'Bond', '31-DEC-2000', '007-007-0007');您还可以使用 DATE 关键字来 ... 阅读更多

如何在 Oracle 中反转结果?

Kiran P
更新于 2020-12-05 06:02:10

4K+ 浏览量

问题:您想在 Oracle 中反转结果。解决方案UNPIVOT 子句是 Oracle 数据库 11g 的新增功能,它使您能够将查询输出中的列翻转成行,并同时允许您对数据运行聚合函数。考虑一个名为 customer 的表,其中存储了以下数据。示例SELECT * FROM customers;输出1   tammy.bryant@internalmail   Tammy Bryant 2   roy.white@internalmail      Roy White 3   gary.jenkins@internalmail   Gary Jenkins 4   victor.morris@internalmail  Victor Morris 5   beverly.hughes@internalmail Beverly Hughes在 customer 表中,我们可以看到全名包含名字和姓氏 ... 阅读更多

如何在 Oracle 中透视结果?

Kiran P
更新于 2020-12-05 06:00:42

14K+ 浏览量

问题:您想在 Oracle 中透视结果。解决方案PIVOT 子句是 Oracle 数据库 11g 的新增功能,它使您能够将查询输出中的行翻转成列,并同时允许您对数据运行聚合函数。PIVOT 特别适用于查看大量数据中的总体趋势。我们将使用销售数据来演示用法。示例SELECT * FROM sales;输出12008   12  1998-02-28  6   37  552 1898.88 12008   18  1998-02-28  6   37  463 1592.72 12008   20  1998-02-28  6   37  2430    8359.2 12008   25 ... 阅读更多

如何在 Oracle 中监控临时表空间的使用情况?

Kiran P
更新于 2020-12-05 05:58:55

9K+ 浏览量

问题:您想监控 Oracle 中临时表空间的使用情况。解决方案:我们可以使用以下查询来找出临时表空间中已使用和空闲的空间。我们将从识别临时表空间名称开始。示例SELECT tablespace_name FROM dba_tablespaces WHERE contents = 'TEMPORARY';输出TEMP接下来,我们将使用以下 SQL 来识别临时表空间中已使用和空闲的空间。示例SELECT * FROM   (SELECT a.tablespace_name,     SUM(a.bytes/1024/1024) allocated_mb   FROM dba_temp_files a   WHERE a.tablespace_name = 'TEMP'   GROUP BY a.tablespace_name   ) x,   (SELECT SUM(b.bytes_used/1024/1024) used_mb,     SUM(b.bytes_free      /1024/1024) free_mb   FROM v$temp_space_header b ... 阅读更多

如何在 Oracle 数据库中识别最近的等待事件?

Kiran P
更新于 2020-12-05 05:57:43

8K+ 浏览量

问题:您想找出数据库中最近的重要等待事件,以及导致这些等待事件的大部分用户、SQL 语句和对象。解决方案Oracle 为我们提供了 V$ACTIVE_SESSION_HISTORY 来获取有关最常见等待事件的信息,以及导致这些等待事件的 SQL 语句、数据库对象和用户。查找等待事件的 SQL示例SELECT event,   SUM(wait_time + time_waited) total_wait_time FROM v$active_session_history GROUP BY event ORDER BY total_wait_time DESC;要找出遇到最多等待事件的用户,我们可以使用以下 SQL。示例SELECT s.sid,   s.username,   SUM(a.wait_time + a.time_waited) total_wait_time FROM v$active_session_history a,   ... 阅读更多

如何在 Oracle 中识别阻塞和被阻塞的会话?

Kiran P
更新于 2020-12-05 05:56:52

24K+ 浏览量

问题:您想识别数据库中的阻塞和被阻塞的会话。解决方案当我们在 Oracle 数据库中看到排队等待事件时,很可能有一些东西正在锁定或阻止某些会话执行其 SQL 语句。当一个会话等待“排队”等待事件时,该会话正在等待由另一个会话持有的锁。我们可以发出以下命令来查看有关 Oracle 中阻塞和被阻塞会话的信息。示例SELECT DECODE(request, 0, 'Holder: ', 'Waiter: ') || sid sess,   id1,   id2,   lmode,   request, ... 阅读更多

如何在 Oracle 中使用分组子句处理 NULL?

Kiran P
更新于 2020-12-05 05:55:47

987 浏览量

问题:您想将 GROUPING() 与 ROLLUP、CUBE 和 SETS 函数一起使用。解决方案GROUPING() 函数接受一个列并返回 0 或 1。当列值为 null 时,此函数返回 1;当列值不为 null 时,返回 0。但是,GROUPING() 仅在使用 ROLLUP 或 CUBE 的查询中使用。当您想在否则将返回 null 时显示一个值时,GROUPING() 非常有用。ROLLUP 中使用单个列的 GROUPING()将列传递给 ROLLUP 的 SQL以下示例中的最后一行将产生费用总计/总和。此总计表示为 ... 阅读更多

如何在 Oracle 中识别等待时间最长的 SQL 查询?

Kiran P
更新于 2020-12-05 07:15:11

2K+ 浏览量

问题:您想识别数据库中导致等待时间最长的 SQL 语句。解决方案我们可以使用以下 SQL 语句来识别导致问题的 SQL。以下查询将对过去 30 分钟内运行的 SQL 语句进行排名,并根据每个查询的总等待时间显示它们。示例SELECT ash.user_id,   u.username,   s.sql_text,   SUM(ash.wait_time + ash.time_waited) ttl_wait_time FROM v$active_session_history ash,   v$sqlarea s,   dba_users u WHERE ash.sample_time BETWEEN sysdate - 60/2880 AND sysdate AND ash.sql_id  = s.sql_id AND ash.user_id = u.user_id GROUP BY ash.user_id,   s.sql_text,   u.username ORDER BY ttl_wait_time ;当您遇到性能问题时 ... 阅读更多

如何在 Oracle 中收集扩展的查询执行统计信息?

Kiran P
更新于 2020-12-05 05:52:55

412 浏览量

问题:您想为特定查询收集扩展的解释计划统计信息。解决方案我们可以使用 GATHER_PLAN_STATISTICS 提示。此提示在运行时放置在查询中时,将生成扩展的运行时统计信息。它基本上有两个步骤。使用 gather_plan_statistics 提示执行查询。使用 dbms_xplan.display_cursor 显示结果。示例SELECT /*+ gather_plan_statistics */       city,       round(avg(fees)) avg_fees,       min(fees) min_fees,       max(fees) max_fees  FROM students e, departments d, locations l WHERE e.department_id = d.department_id   AND l.location_id = d.location_id GROUP BY city;输出Southlake   5760    4200    9000 Seattle     10701   6900 ... 阅读更多

如何在 Oracle 中更改 JOIN 方法?

Kiran P
更新于 2020-12-05 05:49:23

469 浏览量

问题:您的查询在多个表上具有 JOIN 条件时存在性能问题,并且您希望通过在查询中放置相应的提示来覆盖联接类型。解决方案:有三种可能的联接类型:嵌套循环、哈希和排序合并。嵌套循环联接提示:要调用嵌套循环联接,请使用 USE_NL 提示示例EXPLAIN PLAN FOR SELECT /*+ use_nl(students, departments)  */  first_name, department_name   FROM students e, departments d  WHERE e.department_id = d.department_id;   SELECT * FROM table(DBMS_XPLAN.DISPLAY (FORMAT=>'BASIC'));输出---------------------------------------------------------- | Id  | Operation                    | Name             ... 阅读更多

广告

© . All rights reserved.