gpt4 book ai didi

sql-server - SQL Server 与 Access 插入性能对比,尤其是在使用 GUID 时

转载 作者:行者123 更新时间:2023-12-01 08:20:49 25 4
gpt4 key购买 nike

我很想知道在使用 Access 2007 作为 SQL Server 2008 的前端时使用顺序 GUID 时如何提高 SQL Server 的性能(请注意,这是我感兴趣的唯一上下文)。

我进行了一些测试(并得到了一些相当令人惊讶的结果,特别是在使用 顺序 GUID 时从 SQL Server 获得的结果:插入性能下降得非常快,而且对我来说这么快降级似乎并不合适。

基本上测试如下:

From the Access front-end, using VBA only, insert 100,000 records in batches of 1000, sequentially.


  • 我尝试使用身份和顺序 GUID 作为 PK。
  • 我在 SQL Server 2008 Standard(没有特殊调整,只是默认安装)和 Access 2007 数据库作为后端进行了尝试。所有表都链接回前端。

  • 一些结果(更多,原始数据可在 my blog entry about the test 上获得):

    很明显,随着数据库的增长,插入性能会降低,但 SQL Server 在这里的性能根本就不是很好。

    http://blog.nkadesign.com/wp-content/uploads/2009/04/chart02.png

    SQL Server 结果的扩展 View :
    http://blog.nkadesign.com/wp-content/uploads/2009/04/chart03.png

    编辑 13APR2009

    我找到了 issue with my server configuration我更新了 tests on my blog .
    感谢大家的回复,他们对我帮助很大。

    最佳答案

    这里有两件事在起作用。首先,重要的是要指出,对于特定的用例,开箱即用的 SQL 不一定能很好地工作。它是一种专业产品,旨在由知道自己在做什么的人进行调整。

    相比之下,Access 被设计为在大多数用例中运行良好,无需任何配置。第二点涵盖了这种权衡的缺点:

    SQL Server 专为可伸缩性而设计。请注意只有 100,000 条记录,Access 是如何严重降级的。在一百万之前,它可能会急剧下降到 SQL 的线以下。相比之下,SQL Server 几乎保持完全稳定,在大约 45,000 条记录之后变化趋于稳定,并将继续保持数百万。

    编辑 我认为这里可能还有其他我们没有看到的东西在起作用。我认为您的 SQL 编号看起来很糟糕,所以我自己进行了测试。在我的运行 Windows Vista 3.6 ghz 和 2gb RAM 的桌面上,在 SQL Server 上执行具有顺序 GUID 的插入:

  • 在 0 条记录处平均每秒 1382 次插入
  • 在 500k 条记录时平均每秒插入 1426 次
  • 从 0 到 500k 平均每秒 1609.6 次插入,平均下限为 992 次插入/秒,平均上限为 1989 次插入/秒。

  • 因此,考虑到在使用中的桌面上运行它所产生的正常差异,我会说 SQL Server 插入基本上从 0 条记录线性扩展到半百万。在专用的、经过调优的服务器上,我希望获得更高的一致性(更不用说更好的性能了):

    Excel chart, inserts per second http://img24.imageshack.us/img24/9485/insertspersecond.jpg

    关于sql-server - SQL Server 与 Access 插入性能对比,尤其是在使用 GUID 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/732512/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com