拥有多个文件组是否有助于加快数据库速度?

2024-01-06

目前,我正在开发一个使用 MS SQL Server 2005 进行相当密集计算的产品。在较高的层面上,我的产品的架构基于“运行”的概念,每次我进行一些分析时,它都会存储在一系列中运行表数(每次运行约 100 个表)。

我遇到的问题是,当运行次数在几个月后增长到大约 1,000 次左右时,数据库的性能似乎确实下降了,特别是简单的查询(例如检查表是否存在或创建视图)可以最多需要一到两秒。

我听说使用多个文件组(我目前没有这样做)可能会有所帮助。这是真的吗?如果是的话,为什么/这会有什么帮助?另外,如果有其他建议,即使是像使用更少的表这样的建议,我也愿意接受。我只是想加快数据库速度并希望使其处于可扩展的状态。


在性能方面,使用单独的文件/文件组的最大好处是它可以让您将数据分布在多个物理磁盘上。这是有益的,因为使用多个磁盘,可以同时处理多个数据请求(并行通常比串行更快)。在所有其他条件相同的情况下,这往往会提高性能,但多少取决于您的特定数据集和您正在运行的查询。

根据您的描述,您担心的缓慢操作是创建表和检查表是否存在。如果每次运行生成 100 个表,则运行 1000 次后将生成 100,000 个表。我在单个数据库中创建那么多表方面没有太多经验,但您可能会遇到跟踪数据库模式的系统表的限制。在这种情况下,您可能会发现将表分布在多个数据库中会带来一些好处(这些数据库仍然可以位于同一个 SQL Server 实例中)。

一般来说,SQL Profiler 工具是查找慢查询的最佳起点。有一些数据列指示每个 SQL 批处理的 CPU 和 IO 成本,这应该会向您指出最严重的问题。一旦找到有问题的查询,我将使用查询分析器为每个查询生成查询计划,并查看您是否可以找出导致它们变慢的原因。通过打开查询窗口、输入查询并按 Ctrl+L 来执行此操作。对什么可能慢的完整讨论可以写满一整本书,但值得关注的是表扫描(对于大表来说非常慢)和低效的连接。

最后,您也许可以通过重写查询来改进事情,或者您可能必须对表架构进行更广泛的更改。例如,也许有一种方法每次运行只创建一个或几个表,而不是 1000 个。有关您的特定设置的更多细节将有助于我们给出更详细的答案。

我还推荐这个网站,其中提供了许多有关如何加快速度的技巧:

http://www.sql-server-performance.com/ http://www.sql-server-performance.com/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拥有多个文件组是否有助于加快数据库速度? 的相关文章

  • SQL Server 列名区分大小写

    我使用的数据库具有 French CI AS 排序规则 CI 应该代表不区分大小写 但无论如何都是区分大小写的 我试图理解为什么 我断言这一点的原因是 使用 GIVEN 案例设置进行批量插入失败 但使用另一个 Given 案例设置则成功 例
  • “RDBMS”附近的语法不正确。当我尝试创建外部数据源时,有人遇到同样的问题吗?

    我使用的是sql server 2017 CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH TYPE RDBMS LOCATION
  • 为什么我的 CASE 语句要求 THEN 部分的数据类型为 INT?

    我正在尝试运行一个查询 其中以下 CASE 语句是其中一行 我正在使用报表生成器 3 0 但是 我收到一条错误消息 将 varchar 值 Case 1 转换为 int 数据类型时转换失败 Microsoft SQL Server 错误 2
  • 如何在NiFi中映射流文件中的列数据?

    我有 csv 文件 其结构如下 Alfreds Centro Ernst Island Bacchus Germany Mexico Austria UK Canada 01 02 03 04 05 现在我必须将这些数据移入数据库 如下所示
  • 如何跨多个表强制执行 CHECK 约束

    我有一个在 Microsoft SQL Server 2012 Express 中记录奶牛繁殖信息的数据库 显然 一头牛只有在出生后才能配种 并且在其一生中可能会配种多次 我需要在我的数据库中强制执行这些约束 我目前已经根据下图安排了一个架
  • 优化 SQL Server 上的删除

    Deletesql server 上的有时很慢 我经常需要优化它们以减少所需的时间 我一直在谷歌上搜索一些关于如何做到这一点的提示 并且我发现了各种各样的建议 我想知道你最喜欢和最有效的驯服删除野兽的技术 以及它们如何以及为什么起作用 到目
  • 使用包含和不包含的 Linq 查询

    我正在尝试从数据库中获取记录 它应该 getrecords 其中名称包含 searchKey 并且名称不在 exceptTerms 数组中 并以逗号分隔 我怎样才能在 Linq 中做到这一点 Rows from u in DB Client
  • 将 SQL Server 与 Dart 结合使用

    我还没有找到很好的答案 所以我想尝试一下得到答案 将 Microsoft SQL Server 与 Dart 结合使用的最佳方式是什么 我需要它能够从基本上任何操作系统 网络和移动设备上使用它 我觉得最好的方法可能是 GraphQL 但我对
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • 数据库未在客户端系统上运行的 C# Windows 窗体应用程序

    我用 C 开发了一个使用 SQL Server 数据库连接的 Windows 窗体应用程序 我在 NET Framework 4 0 和 SQL Server 2008 R2 中开发它 我的应用程序正在使用应用程序根目录中存在的本地数据库
  • Sequelize.js 中的自定义或覆盖连接

    我需要使用创建自定义连接条件Sequelize js http sequelizejs com使用 MSSQL 具体来说 我需要加入TableB基于一个COALESCE中的列的值TableA and TableB并最终得到这样的连接条件 L
  • 意外的查询结果

    为什么我从 sql server 得到以下结果 SELECT 12 C1 CONVERT int C2 CASE WHEN THEN equal ELSE not equal END C3 Sql Server Fiddle 演示 http
  • 弹簧隔离支持吗? SQL快照隔离

    我们正在使用 SQL Server 快照隔离可能是提高性能和解决一些死锁问题的好方法 假设我们确实需要更改为快照隔离 我似乎找不到一种简单的方法来在 Springs 上启用快照隔离 Transactional 我发现以下 hibernate
  • 是否有适用于 SQL Server Express 的 SQL Server Profiler? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 SQL Server Express 的 SQL Server Profiler 也许是开源的 或者也许只是一个可以帮助我查
  • SQL Server 数据库架构版本控制和更新

    对于我的应用程序 我必须支持更新方案 并且数据库可能会受到影响 我希望能够从旧版本更新到最新版本 而无需安装中间版本 例如 假设我有版本 A 最旧的版本 B 中间版本 和 C 新版本 我希望能够将版本 A 直接更新到版本 C 对于应用程序文
  • 我可以从 SQL Server 读取元数据来了解最后更改的行/表吗?

    我们有一个数据库hundreds的桌子 有没有某种metaSQL Server 中的数据源 我可以以编程方式查询以获取名称最后更改表和行 或者我们是否需要实施这个我们自己每个表中的字段称为上次更改日期时间 etc 就查明表最后一次修改的时间
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • 返回日期为 null 作为 t-sql 中的最大值

    我有这张桌子 ID Date Value 3241 9 17 12 5 3241 9 16 12 100 3241 9 15 12 20 4355 9 16 12 12 4355 9 15 12 132 4355 9 14 12 4 100
  • SQL Server 选择所需存储过程的查询帮助

    我正在努力解决在存储过程中构造 sql select 查询所需的逻辑 我的数据库使用股票市场数据 我有一个 2012 年交易日期表 一个股票代码表以及一个通过网络服务列出这些代码和交易日期的每日定价数据表 我正在尝试从我正在处理的选择查询中

随机推荐

  • Webservice C# 构造函数不允许参数?

    我试图创建一个 Web 服务 在其构造函数中采用一些参数来保存往返 但我不断收到错误 CS1729 servicename 不包含采用 1 参数的构造函数 尽管当我尝试在本地创建即时 在与服务相同的项目中 时 一切正常 什么给出了 网络服务
  • 使用 Google API - GClientGeocoder()

    我尝试关注此页面 http melandri net 2009 07 03 get location coordinates using google maps 但 GClientGeocoder 未定义 有错误 我已经在我的页面上使用了谷
  • 使用 Regex golang 查找所有匹配的字符串

    我试图返回一个数组或切片 其中包含特定正则表达式与字符串的所有匹配项 该字符串是 city state zip 我想返回一个数组 其中包含花括号之间的所有字符串匹配项 我尝试过使用regexp https golang org pkg re
  • jqgrid 列宽自动

    有没有办法让jqgrid的列宽根据该列的内容动态变化 我使用了shrinkToFit和autoWidth 但它们都不适合我 我使用jqgrid 4 5 2 我搜索并阅读了其他问题 但这些对我不起作用 也许有一个小部件可以做到这一点 如果你帮
  • 如何根据值更改输入滑块拇指颜色?

    我正在制作一个包含范围输入滑块的网站 我希望滑块拇指根据滑块的值改变颜色 例如 如果值为 0 则拇指颜色将为rgb 255 0 0 如果是 100 颜色将为rgb 0 255 0 拇指会变色 需要明确的是 我不想要这样的事情 if slid
  • 使用 html/css3 和 WebView 将图像缩放到屏幕...在图像加载之前出现白屏

    我正在 Android 中使用 WebView 来加载一些本地 html 将图像缩放到屏幕作为背景 但是 当我开始加载 WebView 的活动时 我在图像之前看到了非常短暂的白屏闪烁负载 这不是什么大不了的事 但我想避免这种情况 我尝试将所
  • Django:如何迁移运行时创建的动态模型

    在我的 Django 应用程序中 特定的用户输入将导致创建新模型 这是我用来创建模型并注册它的代码 model type model name ExistingModel attrs admin site register model ad
  • 如何让 Safari 发送 if-modified-since 标头?

    当我生成页面时 我发送标题 HTTP 1 1 200 OK Cache Control private Content Type text html charset utf 8 Last Modified Mon 04 Apr 2011 2
  • PHP 中的 JavaScript 函数 fromCharCode()

    var test String fromCharCode 112 108 97 105 110 document write test Output plain 有没有 PHP 代码可以用作String fromCharCode JavaS
  • CanCan::Ability current_user 方法在哪里定义?

    差不多就是我在标题中提到的内容 我在代码中使用 CanCan Ability 来检查权限和能力 它期望定义一个 current user 方法 我猜它来自 devise 但不确定 我希望覆盖它 最好的方法是什么 被发现了here https
  • JQuery:可以有 3 个输入的滑块吗?

    我想创建一个具有 3 个输入的滑块 我做了很多研究 但找不到比带有 2 个输入的滑块更多的东西 这是代码 http jqueryui com slider range http jqueryui com slider range 如何创建
  • pip - 使用项目文件夹作为安装源

    我想配置pip使用自定义搜索路径从本地文件夹安装包 该文件夹未托管在 PyPI 上 目标是能够运行 pip install user my non published package 并让它安装所述软件包 home myuser proje
  • JSTree 检查所选节点是否为叶子或仅叶子可选

    我创建了一个jstree如下 js tree jstree core data url pageContext request contextPath makeTree plugins types search data function
  • SAM 模板内的 IAM 角色

    如何在 SAM 模板中创建 IAM 角色 就像我在 SAM 包中所做的那样 我尝试了如下 lambdaFunctionRole Type AWS IAM Role Properties AssumeRolePolicyDocument Ve
  • 如何从父文档访问 iframe 内的元素?

    function contents nb name height 1 document getElementById contents iframe height height px 2 var currentIFrame contents
  • 有效 32 位有符号整数的正则表达式

    我很确定这个网站实际上还没有回答这个问题 一劳永逸地 匹配 32 位有符号整数范围内的数字字符串的最小正则表达式是什么 2147483648 to 2147483647 I must使用正则表达式进行验证 这是我可用的唯一选项 我努力了 d
  • 如何将接口转换为 C# 中的类型?

    我有一个返回接口的属性 在调试过程中 我可以中断返回的内容 虽然它是接口 但 Visual Studio 足够聪明 可以知道它实际上是什么派生类型 我认为它正在使用反射或其他东西 我不知道 我的问题是 我可以在运行时获得相同的信息 以便我可
  • 在 Apache Camel 日志中记录简单文本

    可以在 Camel 中记录简单文本 如下所示
  • 按 pandas 中除一个索引列之外的所有内容进行分组

    我的数据分析反复依赖于一个简单但不确定的主题 即 对除外的所有内容进行分组 以这个多索引为例 df accuracy velocity name condition trial john a 1 1 403105 0 419850 2 0
  • 拥有多个文件组是否有助于加快数据库速度?

    目前 我正在开发一个使用 MS SQL Server 2005 进行相当密集计算的产品 在较高的层面上 我的产品的架构基于 运行 的概念 每次我进行一些分析时 它都会存储在一系列中运行表数 每次运行约 100 个表 我遇到的问题是 当运行次