以非编程方式处理SQL Server数据的最佳方式是什么?

问题描述:

我们有一个SQL服务器数据库。要以非编程方式操作数据,可以通过右键单击表并选择“打开表”来使用SQL Server Management Studio。但是,对于非常大的表而言,这很慢,而且排序和过滤非常麻烦。以非编程方式处理SQL Server数据的最佳方式是什么?

通常我们迄今为止所做的是创建一个Access数据库,其中包含指向SQL Server表和视图的链接表。以这种方式打开大型表格会更快,并且Access具有易于使用的右键单击过滤和排序。

但是,从Access 2007开始,使用大型表格时,排序尤其慢。 Access数据库也可能会无意中锁定数据库表,阻止可能需要访问数据的其他进程。首先创建Access数据库,并在将新表添加到SQL Server时进行更新也很乏味。

有没有更好的方式来处理Access的可用性而没有缺点的数据?

+0

刚刚针对Access 2007发布的修补程序可能会解决您遇到的性能问题。有关详细信息,请参阅http://support.microsoft.com/kb/956054。但它只能以形式而不是数据表视图来解决问题。 – 2008-09-17 03:06:24

Joel Coehoorn的答案当然是对的,如果数据很重要或者有天真的用户使用这些数据,那么应该开发一个应用程序前端。这就是说,我有一些聪明的用户(好的,我)用户需要进入并捅捅。

不是直接查看表格,而是使用MS Access,但使用查询来缩小您在列和明智行列中查看的范围。这将提高速度。然后编辑查询属性并确保查询是No Locks。这应该消除任何阻塞行为。您可能想要限制返回的行数,这将再次提高速度。您仍然可以在查看时编辑查询中的数据。

根据您的需要,在SQL Server中设置数据库视图以在服务器上而不是在客户端上执行某些繁重工作可能也很有用。

我不知道它如何处理真正大的表格,但Visual Studio比SQL Management Studio对基本表格操作要快得多。在服务器资源管理器中打开数据库,右键单击表格,然后选择“打开”以显示数据或选择“新查询”进行过滤,排序等。

+0

Visual Studio花了几分钟时间打开一张有600,000行的表格,实际上它比SSMS稍慢。与Access相比,过滤非常麻烦。无论如何感谢您的建议。 – 2008-09-10 19:39:47

编辑原始数据是一种危险的无数据,没有。更好地确定你发现自己这样做的情况,并将应用程序接口放在一起,作为一个中介,防止你做出像打破外键这样的愚蠢行为。

+0

“数据库管理系统应该始终强制执行它可以实施的约束,而不是依靠应用程序来避免写入违反约束条件的数据。”你如何打破外键? – onedaywhen 2008-10-13 20:05:24

我不知道大数据集的性能会如何,但open office有一个数据库程序(Base),它是一个Access克隆,可能就是您要查找的内容。

我用Visual Studio做了很多东西,只是为了方便,而不是直接登录到服务器和数据库管理器。

但是,您是否尝试过Toad for MS SQL(来自Quest Software)?我一直都在使用Oracle,并且取得了很好的结果(通常比Oracle的工具更好)。

您可能想要阅读 Tony Toews's Access Performance FAQ,它提供了许多关于如何提高Access应用程序性能的提示。也许其中一个提示可以解决您的A2K7应用程序中的问题。