4

我们有几个 SQL Server 数据库,其中包含来自我们构建的生成器的测量值。然而,这些有用的数据只有少数工程师可以访问,因为大多数工程师不熟悉 SQL(包括我)。是否有任何工具可以让工程师提取选定的数据子集,以便在 Excel 或其他环境中进行分析?理想的工具是

  1. 保护数据库免受任何意外更改,
  2. 无需 SQL 知识即可提取数据,
  3. 非常易于使用,例如使用 GUI 来选择字段和选择的时间范围,
  4. 允许将数据值导出到 Excel 可以读取的文件中,
  5. 运行提取任务不需要数据库管理器的参与/输入,并且
  6. 对于新手数据库管理器来说很容易设置。

感谢您的任何建议或建议。

4

4 回答 4

3

首先,我永远不会让用户在生产机器上运行他们自己的查询。他们可以整天运行表扫描或其他一些性能杀手。

我们也有类似的情况,我们通常创建自定义存储过程供用户“调用”,并且只允许访问运行“几乎实时”数据的备份服务器。

我们的用户熟悉 excel,所以我创建了一个存储过程,其中包含大量用于过滤/自定义的参数,他们可以使用以下方式轻松调用它:

EXEC YourProcedureName '01/01/2010','12/31/2010','Y',null,1234

我准确记录了参数的作用,从那里开始它们通常很好。

要设置 excel 查询,您需要在用户的 PC 上设置数据源(控制面板 - 数据源 - odbc),这将根据您的 windows 版本略有不同。

在 excel 中,您需要设置“查询”,这只是EXEC上面的命令。根据 Excel 的版本,它应该类似于:菜单 - 数据 - 导入外部数据 - 新数据库查询。然后选择数据源,connect,跳过table diagram maker,输入上面的SQL。另外,不要试图让一个程序完成所有事情,而是根据他们所做的事情制作不同的程序。

一旦数据在 Excel 工作表上,我们的用户就可以将其拉到其他工作表上并随意操作。

一些用户有点高级并“尝试”编写自己的 SQL,但这很痛苦。我最终调试并修复了他们不正确的查询。此外,一旦您更正了查询,他们总是会修补它并再次破坏它。使用存储过程意味着他们无法更改它,我可以将它与我们的其他过程一起放在源代码存储库中。

于 2010-10-06T15:09:59.843 回答
1

我建议您在 Excel 中构建自己的。Excel 可以通过 ODBC 连接查询您的 SQL Server 数据库。如果操作正确,最终用户只需单击“获取数据”按钮即可。然后他们可以访问 Excel 的所有 GUI 功能来查看数据。

于 2010-10-06T15:04:40.833 回答
0

Excel 允许将存储过程的输出直接加载到选项卡中。那个 IMO 是最好的方法:用户不需要 SQL 知识,他们只需调用一个过程,除了 Excel 和您的数据库之外没有额外的移动部件。

于 2010-10-06T15:04:31.557 回答
0

根据您的 SQL Server 版本,我会在更高版本(例如 Report Builder)中查看一些出色的自助式 BI 工具。这就像一个精简版的 Visual Studio,去掉了所有复杂的部分,只剩下简单的报告部分。

如果您设置了一个共享数据源,该数据源以非常低的访问权限登录到服务器,那么用户可以构建报告但不能编辑任何内容。

我会回应 KM 的评论,即让生产系统上的大量未清洗运行查询可能会导致一些有趣的结果,或者使用错误的查询或大量表扫描或笛卡尔连接等

于 2010-10-07T07:14:19.780 回答