1

我想为我的报告目的创建数据库表。因为我将我的报告系统与事务系统分开。

我将创建像

  • .report_company_id_12_unique_views(用例 1)
  • .report_company_id_18_unique_views
  • .report_adserver_id_22_unique_counts(用例 2)
  • .report_adserver_id_44_unique_counts...等等

我们有 50 多个报告用例,大多数表的行数不超过 200 行,我们必须以不同的方式处理每个用例,因为它们都是独一无二的。

但我将有大约 8.000 张桌子用于这些目的。

8.000 个表听起来不太酷,但我想使用报告数据库进行快速访问

这是 db 专为数据存储而设计....即使表中没有主键....所有目的都是只读访问从n * 百万行表中提取的数据。将其视为非规范化版本用于报告的真实数据库。我们创建表,插入数据,下一个计划我们再次删除和插入数据。

我的问题是我应该为这个计划任务使用哪个工具?

  • 1.SQL 代理(我必须在其中编写游标来完成所有工作)
  • 2.Windows 任务库,我可以在其中调用我的代码并让进程外的类完成这项工作。
  • 3.???? (其他选择)

-nosql 解决方案不被接受。:(

我要满足的要求

  • 1.易于调试(相对)
  • 2.易于扩展(相对)
  • 3.易于部署(绝对)
4

2 回答 2

0

您的问题的简单答案是使用 SQL Server 代理。它与 SQL Server 集成,为您提供完成任务所需的基本功能。没有任何理由(根据您的问题)使用其他软件。

也就是说,有一些缺点,特别是(在我看来)在错误处理和通知方面。

您没有描述创建每个表的过程。如果它像从视图中选择一样简单,那么您可以设置一个报告表并遍历该表以获取最终报告。

与评论一样,我认为 8,000 个表表明数据模型存在问题。您应该能够将类似的报告合并到一个表中(您提到 50 个,这意味着 50 个表)并使用其他机制来分离每个公司/服务器的报告。例如,如果他们直接访问“表”,则使用用户定义的表函数或视图,而不是使用大量表。

于 2013-03-25T13:49:35.760 回答
0

反科学

我同意,对此的第一反应应该是“重构,因此您不使用 8000 个表”。您可以使用主键进行快速的只读访问。不需要这种表膨胀——如果你要做这样的事情,那就是基本的键值存储,看看 NoSQL 替代方案。– 反科学 17 小时前

于 2013-03-26T06:16:51.080 回答