【问题标题】:Query just runs, doesn't execute查询只是运行,不执行
【发布时间】:2021-03-17 03:38:57
【问题描述】:

我的查询只是运行并没有执行,出了什么问题。从事oracle sql developer,公司服务器工作

CREATE TABLE voice2020 AS
SELECT
to_char(SDATE , 'YYYYMM') as month,
MSISDN,
SUM(CH_MONEY_SUBS_DED)/100 AS AIRTIME_VOICE,
SUM(CALLDURATION/60) AS MIN_USAGE,
sum(DUR_ONNET_OOB/60) as DUR_ONNET_OOB,
sum(DUR_ONNET_IB/60) as DUR_ONNET_IB,
sum(DUR_ONNET_FREE/60) as DUR_ONNET_FREE,
sum(DUR_OFFNET_OOB/60) as DUR_OFFNET_OOB,
sum(DUR_OFFNET_IB/60) as DUR_OFFNET_IB,
sum(DUR_OFFNET_FREE/60) as DUR_OFFNET_FREE,
SUM(case when sdate < to_date('20190301','YYYYMMDD')
    then CH_MONEY_PAID_DED-nvl(CH_MONEY_SUBS_DED,0)-REV_VOICE_INT-REV_VOICE_ROAM_OUTGOING-REV_VOICE_ROAM_Incoming
    else (CH_MONEY_OOB-REV_VOICE_INT-REV_VOICE_ROAM_OUTGOING-REV_VOICE_ROAM_Incoming) end)/100 AS VOICE_OOB_SPEND
FROM CCN.CCN_VOICE_MSISDN_MM@xdr1
where MSISDN IN ( SELECT MSISDN FROM saayma_a.BASE30112020) --change date
GROUP BY   
MSISDN,
to_char(SDATE , 'YYYYMM')
;

【问题讨论】:

  • 没有创建的查询会产生什么吗?你有创建和选择的权限吗?
  • “运行”和“执行”有什么区别?你的意思是它开始但没有完成?

标签: sql oracle query-optimization distributed-system


【解决方案1】:

这是一个性能问题。显然,驱动 CREATE TABLE 语句的查询需要很长时间才能返回结果集。

您正在从远程数据库 (CCN.CCN_VOICE_MSISDN_MM@xdr1) 中的表中查询,然后针对本地表 (saayma_a.BASE30112020) 进行过滤。这意味着您将通过网络复制该远程表的所有,然后丢弃与 WHERE 子句不匹配的记录。

您知道您的数据(或者至少您应该知道):这听起来有效吗?如果您实际上要丢弃大部分记录,则应尝试在远程数据库中过滤 CCN_VOICE_MSIDN_MM。


如果您需要更多建议,您需要提供更多信息。请阅读this post about asking Oracle tuning questions on this site,然后编辑您的问题以包含一些详细信息。

【讨论】:

  • 是的,就是这样。将编辑我的问题并发布调整问题
【解决方案2】:

您正在执行CTAS (CREATE TABLE AS SELECT),此查询的目的是使用通过此查询生成的数据创建表。

如果您只想执行查询并查看数据,请删除查询的第一行。

-- CREATE TABLE voice2020 AS
SELECT
.....

此外,如果您已经执行过一次,则实际查询的数据必须存在于voice2020 表中。

Select * from voice2020;

【讨论】:

  • 当我创建表 voice2020 时,我的代码没有执行。它只是运行
  • 因为您正在使用数据库链接获取和插入数据。它还取决于网络速度。
【解决方案3】:

看起来您正在尝试将数据从一个表复制到另一个表,如果没有创建表,您可以创建一次,然后尝试此语句。

insert into  target_table select * from source_table;

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 2021-03-09
    • 1970-01-01
    • 2014-02-27
    相关资源
    最近更新 更多