SQL Oracle 查询数据,汇总数据 oracle数据查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Oracle 查询数据,汇总数据 oracle数据查询相关的知识,希望对你有一定的参考价值。
序号 数量 日期 1 1 20131001 2 1 20131007 3 8 20131008 4 9 20131009 5 5 20131010 使用SQL语句查询出这样的结果: 1 1 20131001 2 2 20131007 3 9 20131008 4 17 20131009 5 22 20131010 也就是数量这一列为当天数量加上前一天的数量,谢谢
参考技术A 假设存储这些数据的表名为cal_amount,sunmber表示序号,amount表示数量,sdate表示日期,以下语句为一点拙见,望抛砖引玉。。。with
cal_amount_temp
as
(select
c.sunmber
+
1
as
sunmber,
c.amount,
c.sdate
as
sdate
from
cal_amount
c)
select
a.sunmber,
a.amount
+
nvl(b.amount,
0)
as
amount,
a.sdate
from
cal_amount
a
left
join
cal_amount_temp
b
on
a.sunmber
=
b.sunmber
order
by
a.sunmber
但是,如果说“数量这一列为当天数量加上前一天的数量”,那么楼主结果中的最后一行为什么是22,而不是14?
通过 *** 的 Oracle 和 MS SQL 查询非常慢
【中文标题】通过 *** 的 Oracle 和 MS SQL 查询非常慢【英文标题】:Oracle and MS SQL Query very slow over *** 【发布时间】:2020-04-04 18:04:12 【问题描述】:我有一个将Oracle Driver 用于 Oracle Database 12c 企业版 12.1.0.2.0 64 位的 C# 程序。 在 LAN 上,程序中的选择大约需要 2 秒。如果我通过 *** 隧道建立连接,则相同的选择大约需要 48 秒。 如果我 ping 数据库: 局域网:0.206 毫秒 ***:53 毫秒
为了确保我也使用 Oracle SQL Developer 19.2.1 进行了测试,结果大致相同。
我尝试在客户端将 MTU 降低到 1400,因为一些网站提到碎片是问题的原因,但这并没有改变任何东西,至少在我配置它的方式上。这可能是什么原因造成的?
【问题讨论】:
您的对象有多大,选择了多少?这可能是带宽问题。另外,你用的是什么***?您是在内部托管自己的还是公共/商业的? 我不太清楚你所说的对象是什么意思?我选择了 14 个字段,结果大约有 52K 行。我们使用 Open***。我的 GUI 版本是 11.10.0.0,服务器位于内部。在日志中显示 Open*** 2.4.6 x86_64-w64-mingw32; OpenSSL 1.1.0h 如果我尝试选择空结果:LAN:0,001 秒,***:0,04 到 0,09 秒 从您的问题和评论中,我们看到您的 *** 比非 *** 连接慢了大约 50 倍,因此您很幸运能从 2 秒缩短到 48 秒,而不是 100 秒。可以肯定,尝试获取有关网络活动的会话统计信息,它会告诉您发送和等待数据所花费的时间。 处理查询和获取数据所需的 SQL*Net 往返次数加剧了网络延迟。最小化网络延迟的一种方法是确保将 C# 程序中的数组获取大小设置为较大的数字。假设它是 10,那么您需要 5、200 次网络往返才能返回 52,000 行。而如果将其设置为 5,000,则您只需要 11 次以上的网络往返。 @k4yaman 谢谢你的来信。我已经发布了答案。 【参考方案1】:处理查询和获取数据所需的 SQL*Net 往返次数加剧了网络延迟。最小化网络延迟的一种方法是确保将 C# 程序中的数组 fetch size 设置为一个较高的数字。假设它是 10,那么您需要 5,200 次网络往返才能返回 52,000 行。而如果将其设置为 5,000,则您只需要 11 次网络往返。
对于 MS SQL 数据库,Packet size 可用于连接字符串。
【讨论】:
以上是关于SQL Oracle 查询数据,汇总数据 oracle数据查询的主要内容,如果未能解决你的问题,请参考以下文章