以非编程方式使用SQL Server数据的最佳方法是什么?
我们有一个SQL Server数据库。若要以非编程方式处理数据,我可以通过右键单击表并选择"打开表"来使用SQL Server Management Studio。但是,这对于非常大的表来说很慢,并且排序和筛选很麻烦。
通常,到目前为止,我们要做的是创建一个Access数据库,其中包含指向SQL Server表和视图的链接表。用这种方法打开一个大表要快得多,并且Access具有易于使用的右键单击筛选和排序功能。
但是,从Access 2007开始,特别是在处理大型表时,排序一直很慢。 Access数据库还可能无意中锁定了数据库表,从而阻止了可能需要访问数据的其他进程。首先创建Access数据库,并在将新表添加到SQL Server时对其进行更新,这也很繁琐。
是否有更好的方法来处理可提供Access可用性而又没有缺点的数据?
解决方案
回答
我不知道它对于大型表的性能如何,但是对于基本表操作,Visual Studio比SQL Management Studio快得多。在服务器资源管理器中打开数据库,右键单击表,然后选择"打开"以仅显示数据,或者选择"新建查询"以进行过滤,排序等。
回答
编辑原始数据是危险的禁忌。更好地确定我们发现自己正在执行此操作的情况,并组合一个应用程序接口充当中介,以防止我们执行诸如破坏外键之类的愚蠢事情。
回答
我不知道大型数据集的性能如何,但是开放式办公室有一个数据库程序(Base),它是一个Access克隆,可能正是我们想要的。
回答
我已经使用Visual Studio做很多事情,只是为了方便起见,而不是必须登录服务器并直接在数据库管理器上工作。
但是,我们是否尝试过Toad for MS SQL(来自Quest Software)?我一直在Oracle上使用它,并取得了良好的效果(通常比Oracle的工具要好)。
回答
Joel Coehoorn的答案当然是正确的,即如果数据很关键或者有幼稚的用户在使用数据,那么应该开发应用程序前端。话虽这么说,但在某些情况下,明智的用户(好吧,我)只需要到那里闲逛就可以了。
与其直接查看表,不如使用MS Access,而是使用查询来缩小我们在按列和按行查看时的范围。这样可以提高速度。然后编辑查询属性,并确保查询为"无锁"。那应该消除任何阻塞行为。我们可能希望限制返回的行数,这将再次提高速度。我们仍然可以在查询时编辑查询中的数据。
根据我们要查看的内容,在SQL Server中设置数据库视图以在服务器而不是客户端上执行一些繁重的工作可能也很有用。
回答
我们可能想阅读
Tony Toews的"访问性能常见问题",其中提供了许多有关如何提高Access应用程序性能的提示。这些技巧之一也许可以解决A2K7应用中的问题。