允许用户使用excel查询OLTP SQL Server数据库是否可行?

我有一个由多个应用程序使用的SQL Server 2005数据库。

有些用户希望直接从Excel中查询数据库。 我可以理解这一点,因为它是一个有用的工具,用于即席查询,然后以一种容易被其他用户传输和操纵的格式获取数据。

我的问题是:Excel(比如2003/2007)是否以不会导致并发问题的方式进行查询?

还是这样做,需要一个单独的数据库数据库来处理这种情况?

感谢您的任何build议。

Excel是高级用户的重要来源。

我还没有遇到来自Excel的并发问题,就像资源问题一样 – 通常分析查询会抽取大量数据并对其进行总结。 这会对我的生产服务器造成巨大的负载,因为它针对OLTP和小块数据进行了优化,而不是对数据量庞大的OLAP进行优化。

由于T-SQL熟练程度和查询优化可能不是电力用户的最大优势,我更喜欢将SQL复制出我的生产数据库到一个只有报告的数据库,他们将以较低的速度获得相同的数据,而不会减慢生产分贝。

SQL Server复制

如果OLAP负载开始变得太高,那么您可以考虑将OLTP结构非规范化为OLAP结构,并使用ETL过程加载星型模式数据仓库。

如果你的用户是精明的,可以用Excel生成报表,那太好了。 它会为你节省很多的工作。

为了避免并发问题,我们用nolock做了一些观点,比如:

 create view vw_excelreporting_Orders as select col1, col2, col3 from OrderTable with (nolock) 

然后,我们为Excel创build了一个用户,只有这个视图有select权。 确保您的DBA跟踪长时间运行的查询和超时,这可以很好地工作。

这取决于用户在Excel中做什么。 一般来说,您绝不应该对OLTP数据库进行报告。 相反,创build每晚复制,让他们查询到他们的心中的内容。

安装SSAS(SQL Server分析服务)。 在没有繁忙时间的非工作时间,从OLTP数据库加载立方体。 让人们连接到SSAS多维数据集。 这是为了这个。

在途中升级到2008;)SSAS有许多新的function。