我注意到,对于我们的组织和一些时代软件提供商的水晶报告,对于其报告的数据集使用了物理表,而不是使用视图或存储过程来收集数据。有时我已经看到报告使用存储的程序,然后使用 身体的 表而不是临时表来存储和操纵数据集。在这些情况下,报告输出通常以类似的表格存在 rpt_ap_vendors 或类似,在不使用时可能会或可能不会没有数据。

这些始终是按需生成报告的情况,因此,这不是可以生成一次报告并多次提供报告的情况,并且没有多个报告/存储过程同时访问此数据。

将实体表用于这样的报告有什么原因?是否有逻辑,技术或绩效相关的原因?在生成报告时,我个人始终使用带有临时表或更好但派生表的视图和存储过程,以避免涉及清理/删除临时表的额外磁盘读取。

有帮助吗?

解决方案

(+)创建物理表以存储报告数据的原因:

  • 报告数据可重复使用。 我将Crystal Reports或SharePoint指向表上,然后不必担心这些工具或最终用户访问数据的频率或何时何时访问数据。 (嗯,在一定程度上,由于反复阅读大报告表会丢弃我的缓冲缓存。)我还可以维护旧报告的滑动窗口,以便沿着不可避免的请求沿着:“您可以再次生成去年的报告吗?当时找不到我提取的CSV。”

    这可能是在您的网站上以这种方式设置的主要原因。 Crystal Reports可能不够聪明,无法在用户通过它分页或更改报告的设置时缓存报告数据。因此,在最坏的情况下,CR正在为您的每一个动作重新生成您的报告,这是一项昂贵且耗时的操作。有了物理表,它只是根据需要重新征服表。

  • 报告中的设置权限很容易。 您想查看此报告吗?好吧,您所需要的只是允许阅读结果, 没有生成它们. 。因此,在这里,在锁定的模式和文件组/表空间中在此表上有一些阅读权。

通过手动缓存报告,您可以控制和隔离生成该报告的过程。您为您的报告读者提供更多的行动自由,而不是担心DBA。

( - )用物理报告表损失的东西:

  • 灵活性。 想更改报告吗? argh,需要一些DDL更改。
  • 储存空间。 您正在坚持磁盘上的数据,所以DU。

其他提示

在以前的雇主中,一些报告将需要几个小时才能运行。月末和四分之一末报告是最糟糕的(分别为8和20小时)。通过计算结果并将其存储到永久表中,用户可以在不动态数字的情况下查看报告的结果。计算报告的过程可以重新启动,如果被中断,这也有所帮助:在南佛罗里达州的那部分,每天有多次第二次停电。尽管该公司在恶劣的天气日期内有一个发电机,但并非所有员工都有UPSES。

一些“电力用户”希望能够访问数据并在Excel中处理数字,因此他们只读了报告表。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top