相关疑难解决方法(0)

如何制作一个很好的R可重复的例子

在与同事讨论性能,教学,发送错误报告或在邮件列表上搜索指导时,以及在Stack Overflow上,通常会询问可重复的示例并始终提供帮助.

您有什么建议创建优秀示例的提示?如何以文本格式粘贴中的数据结构?您还应该包含哪些其他信息?

在另外还有其他招数来使用dput(),dump()structure()?你什么时候应该包括library()require()声明?其中保留字应避免一个,此外c,df,data等?

怎样才能成为一位伟大的重复的例子?

r r-faq

2474
推荐指数
23
解决办法
28万
查看次数


哪个查询有更好的性能?

SELECT *
FROM { SELECT * FROM BigMillionTable UNION ALL SELECT * FROM SmallTensTable } 
WHERE (some_condition)
Run Code Online (Sandbox Code Playgroud)

VS

SELECT * 
FROM BigMillionTable 
WHERE (some_condition)

UNION ALL

SELECT * 
FROM SmallTensTable
WHERE (some_condition) 
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 第一个查询是否需要将所有行放在 BigMillionTable主内存中才能执行UNION ALL
  2. 哪个查询提供更好的性能?

sql oracle oracle11g query-performance

5
推荐指数
1
解决办法
124
查看次数

带不同子句的左连接

下面是我的插入查询。

INSERT INTO /*+ APPEND*/ TEMP_CUSTPARAM(CUSTNO, RATING)
SELECT DISTINCT Q.CUSTNO, NVL(((NVL(P.RATING,0) * '10.0')/100),0) AS RATING
FROM TB_ACCOUNTS Q LEFT JOIN TB_CUSTPARAM P
ON P.TEXT_PARAM IN (SELECT DISTINCT PRDCD FROM TB_ACCOUNTS)
AND P.TABLENAME='TB_ACCOUNTS' AND P.COLUMNNAME='PRDCD';
Run Code Online (Sandbox Code Playgroud)

在以前版本的查询中,P.TEXT_PARAM=Q.PRDCD但在插入期间TEMP_CUSTPARAM由于违反了唯一约束CUSTNO

插入查询需要很长时间才能完成。想知道如何使用distinct withLEFT JOIN语句。

谢谢。

sql oracle

2
推荐指数
1
解决办法
3万
查看次数

如何从oracle表的多个分区中选择数据

我正在尝试从分区表中的多个分区中选择数据。它适用于单个分区(select * from table partition(ParititonName),但无法选择多个分区( )select * from table partitions(Part1,part2)。您能否让我知道如何在单个查询中选择多个分区。

sql oracle

2
推荐指数
1
解决办法
3万
查看次数

即使具有parallel(8)提示,具有百万条记录的表中的Count(1)还是很慢

我正在尝试从具有1.94亿条记录的表中计算记录数。使用了并行提示和索引快速扫描,但仍然很慢。请为所附查询提出其他替代或改进建议。

SELECT
 /*+ parallel(cs_salestransaction 8)
 index_ffs(cs_salestransaction CS_SALESTRANSACTION_COMPDATE)
 index_ffs(cs_salestransaction CS_SALESTRANSACTION_AK1) */
 COUNT(1)
FROM cs_salestransaction
WHERE processingunitseq=38280596832649217
AND (compensationdate BETWEEN DATE '28-06-17' AND DATE '26-01-18'
OR eventtypeseq IN (16607023626823731, 16607023626823732, 16607023626823733, 16607023626823734));
Run Code Online (Sandbox Code Playgroud)

这是执行计划:

[[执行计划]

查询给出了结果,但花了2个小时才计算出1.94亿。

编辑:


修改过的代码可根据Littlefoot的建议添加DATE。使用实际列名编辑的代码。我是堆栈溢出的新手,因此已将计划作为映像进行了附加。

sql oracle performance query-optimization oracle11g

2
推荐指数
1
解决办法
88
查看次数

了解Oracle执行计划中每个步骤的成本

执行计划 使用以下执行计划(oracle数据库),有人可以解释我如何计算每个步骤相对于另一个步骤的成本?我不需要成本意味着什么,步骤之间的成本关系是什么.

我正在学习有关oracle数据库的课程,老师告诉我们,为了计算请求的成本,我们需要增加除第一行之外的每一行的成本(对于这个计划,他告诉我们总成本是348).

但是,如果将其计算为树,其中每个父节点的成本是其子节点的成本和父节点的成本(如果需要),则更有意义.

oracle

-1
推荐指数
1
解决办法
172
查看次数

性能问题-集合会提高性能吗?

我遇到了性能问题,也许您可​​以帮忙。当我打开游标时,然后运行其他几个SELECT语句以使用游标中的变量来检索值(请参见下文)。这似乎减慢了整个过程。我认为这是因为PL / SQL和SQL引擎之间的切换。使用表集合会有所帮助吗?但是,正如我所看到的,由于我需要来自不同表的不同列,因此我需要具有多个不同的集合,如何在一条记录中输出所有内容以返回结果集?

CREATE OR REPLACE procedure sp_test (in_input in number)  
as 
  v_calc number;
  v_calc_res number;
  v1 number;
  v2 number;
  v3 number;
  CURSOR C_test IS 
    select col1 from test where col1 = in_input;
begin
  open c_test
  loop
    fetch c_test into v_calc;

    select col1 into v1 from t1;

    select col1 into v2 from t2;

    select col1 into v3 from t3;

    v_calc_res := v_calc * 5 * v1 * v2 * v3;

    dbms_output.put_line(v_calc_res);

  end loop;
end sp_test;
/
Run Code Online (Sandbox Code Playgroud)

oracle performance plsql query-optimization

-4
推荐指数
1
解决办法
63
查看次数