Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 用于大型数据集的报告工具/查看器_Sql_Excel_Ms Access_Report_Reportviewer - Fatal编程技术网

Sql 用于大型数据集的报告工具/查看器

Sql 用于大型数据集的报告工具/查看器,sql,excel,ms-access,report,reportviewer,Sql,Excel,Ms Access,Report,Reportviewer,我有一个数据处理系统,可以生成关于它处理的数据的非常大的报告。所谓“大”,我的意思是,这个系统的“小”执行在转储到CSV文件时会产生大约30 MB的报告数据,而大数据集大约是130-150 MB(我肯定有人对“大”有更大的概念,但这不是重点……) Excel以数据列表的形式为报表使用者提供了理想的界面:用户可以动态筛选和分割数据,以查看他们感兴趣的特定细节(因为他们对成千上万的行并不感兴趣,他们知道如何应用多个过滤器来获取他们想要的数据)-他们还可以在报告中添加注释和标记,创建图表、图表等。。。

我有一个数据处理系统,可以生成关于它处理的数据的非常大的报告。所谓“大”,我的意思是,这个系统的“小”执行在转储到CSV文件时会产生大约30 MB的报告数据,而大数据集大约是130-150 MB(我肯定有人对“大”有更大的概念,但这不是重点……)

Excel以数据列表的形式为报表使用者提供了理想的界面:用户可以动态筛选和分割数据,以查看他们感兴趣的特定细节(因为他们对成千上万的行并不感兴趣,他们知道如何应用多个过滤器来获取他们想要的数据)-他们还可以在报告中添加注释和标记,创建图表、图表等。。。他们知道如何做所有这些,如果我们只给他们数据,让他们做就容易多了

Excel对于小的测试数据集非常有用,但是它不能处理这些大的数据集。是否有人知道有一种工具可以提供与Excel数据列表类似的界面—能够在多个字段上动态创建和更改过滤器;但是可以处理更大的文件吗

我尝试的下一个工具是MS Access,发现Access文件膨胀很大(30 MB的输入文件导致大约70 MB的Access文件,当我打开文件、运行报告并关闭它时,文件的大小为120-150 MB!),导入过程很慢,而且非常手动(目前,CSV文件是由运行主进程的同一个plsql脚本创建的,因此我几乎没有干预)。我还尝试了一个Access数据库,该数据库将表链接到存储报表数据的数据库表,速度慢了很多倍(由于某些原因,sqlplus可以在一分钟或soe内查询并生成报告文件,而对相同数据的访问可能需要2-5分钟)


(如果有帮助,数据处理系统将以PL/SQL编写,并在Oracle 10g上运行。)

什么版本的Excel,它现在可以处理相当大的数据量。在Excel 2007中,工作表的大小是16384列乘以1048576行。你真的在报告中发送了超过一百万条记录吗?为什么,谁会看这样的数据?

Access在这种情况下是一个很好的工具,因为它与ex不同,没有实际的行限制最困难的部分是,当人们习惯了自定义过滤器的强大功能时,他们就不再使用excel了。在access中,很可能会获得类似的功能,但除非在表单中嵌入excel控件,否则这些功能永远不会完全相同

至于手动部分,您可以使用VBA为数据库编写脚本以导入文件。例如,假设您的主要任务是在夜间将文件转储到包含新文件的文件夹中。您可以创建一个“watchdog”access数据库,该数据库的窗体打开时使用“OnTimer”事件,每隔几分钟查看一次该文件夹,当它找到新文件时,将开始导入。当用户早上开始工作时,数据已加载

至于膨胀,是的,这可能是一个问题,但所有你需要做的是一个快速压缩和修复的文件,它会缩小下来

编辑:

您可以通过这些选项设置要压缩的access db。我记不清它在哪里,工作时我们只有access 97(但奇怪的是office 2003)。另一个选项是通过代码压缩。这里有一个链接来解释如何压缩


我建议您将Excel前端用于共享RDB后端。

为Excel构建一个自定义过滤系统(我将使用一个VBA和ADO XLA停放在一个服务器上,但有几种技术可供使用),终端用户驱动并生成SQL,使它们返回到Excel他们想要播放的数据子集(图表、计算、打印等)。.

有趣的一个问题;对于此类问题,中端的问题并不多。访问应该是这样,但正如您所发现的,在几个方面都非常糟糕,对于许多最终用户来说可能有点太高级了

另一方面,如果你有一个数据库服务器,不使用它的功能似乎很遗憾。有几种成本和复杂性不同的工具可以让你建立一个用户友好的基于服务器的报告,让用户能够为他们自己的报告设置参数,然后在服务器上进行过滤,然后可以将其结果导出到Excel,例如Oracle Discoveryer或Microsoft Reporting Services(可以将其设置为直接在Oracle数据库上报告,即使是基于SQL Server的数据库)

我们使用Microsoft Reporting Services;我在Developer Studio中构建报告,允许用户进入网页,按任意预定义条件进行过滤,运行报告(在服务器上完成繁重的工作),并将结果导出到Excel进行进一步处理


在中途之家中,您可以设置报告,将初始数据过滤到少于100万行,然后导出到Excel……这可能是Excel 2003。报告的原始数据当然可以包含超过1048576行。我们已经根据正在处理的数据类型将数据分解为多个CSV报告上的报告。这在一定程度上是有效的,但有一个详细的报告仍然包含许多行。我们还没有找到一个与真实数据集一样大的数据集,而且我们已经达到了极限。你是对的,没有人会真正坐下来阅读1000000行,但是用户喜欢Excel数据列表,因为他们可以一次应用多个过滤器d从许多行缩小到他们关心的几百行。数据列表的灵活性是我所寻找的,因为我无法准确预测测试人员和业务用户希望他们的数据如何分割。即使他们并不总是知道,这就是为什么每个人都喜欢数据列表。一个常见的情况是csv文件cre需要超过一百万行