`
xvm03
  • 浏览: 143959 次
  • 来自: ...
社区版块
存档分类
最新评论

SQL Server对上亿表的排序和join的问题解决--ZT

阅读更多

对上亿的表进行排序或者上亿的表之间进行join,会导致系统失去响应。

◆1.我确实做了一个很大的查询,涉及的数据表有两亿条记录,而且有一个group by操作,造成CPU、内存和磁盘开销均很大。后来和微软的人重新实验了一下,我的查询确实会造成系统反应变慢。后来我们也实验了一下,在这个2亿的表上统计一下行数,即select count(*) from table1,用了1分钟,内存涨了5G左右,磁盘子系统负荷很大,CPU也突然提高。这说明这种上亿的表的操作会非常严重的降低效率。

◆2.整个服务器的磁盘分配是这样的,网站访问的数据库库位于磁盘阵列中,而我们的统计临时库位于D盘中,C和D好像是一个磁盘组,也就相当于是在C盘。我们的数据库的大量磁盘I/O会导致系统的反应变慢。因此当我的查询很大的时候,就会使服务器整个系统变慢。

◆3.数据库的数据文件的自增长方式为每次1024k,数据文件的空间已经接近用光,而要发生增长,而增长空间要求应该比较大,所以就会不停的申请增长,造成磁盘开销较大。

◆4.操作中涉及到delete操作,会形成大量的日志,而上周扩容后,发现日志文件比以前缩小了,估计是重建了,昨天的操作会导致日志文件也要不断增长,也会造成磁盘的负荷加大。

解决办法:

针对一:

避免大表操作,所有的操作均可以按省或者时间分开,这样无论从时间或者地域维度,基本上可以将大表拆成30张以上的小表操作,甚至更多。然后再对结果进行合并,应该可以避免上述问题。

针对二:

无解决方案,只是建议将我们的数据库也单独分到一组磁盘上去,不要跟系统竞争。

针对三:

及时删除无用的临时数据,保障数据库空间,同时也可以做上空间监控,一旦数据文件空间发生增长时,给DBA一个预警邮件,我们收到邮件后可以立即做相应处理。

针对四:

日志文件目前已经涨得较大,我们执行一下截断日志的动作,将日志文件的空间使用保持在一个较低水平

分享到:
评论

相关推荐

    【SQL】在sql server中 delete时 使用INNER JOIN

    ### SQL Server 中 DELETE 语句结合 INNER JOIN 的应用 #### 背景介绍 在数据库管理与维护过程中,经常会遇到需要删除表中的某些记录的情况。简单地使用 `DELETE` 语句可以删除单个表中的数据,但在多表关联的情况...

    SQL SERVER 字符集问题之一解决

    在本文中,我们将讨论 SQL SERVER 字符集问题之一解决方案,解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序规则冲突。 一、问题背景 在 SQL SERVER 中,默认的字符集是 SQL_Latin1_...

    SqlServer删除所有表数据语句

    Sql Server 允许两种类型的排序规则:Windows 排序规则和 SQL 排序规则。Windows 排序规则是 Sql Server 的首选,因为它们提供了更多选项并且和微软 Windows 环境提供的支持一致。SQL 排序规则用于早期的 Sql Server...

    Microsoft_SQL_Server系统表详细说明

    Microsoft SQL Server 系统表是指数据库管理系统中的一组特殊的表,这些表用于存储数据库的元数据,提供了关于数据库对象、配置选项、用户和安全信息的重要信息。本文将详细介绍 Microsoft SQL Server 系统表的结构...

    Microsoft SQL Server 2008技术内幕:T-SQL查询.pdf

    6. **窗口函数**:SQL Server 2008引入了窗口函数,如RANK、ROW_NUMBER、LEAD和LAG,这些函数允许在结果集上执行行级别的计算,为复杂的数据分析提供了便利。 7. **T-SQL流程控制**:IF...ELSE、WHILE、CASE表达式...

    SQLserver连接问题解决办法

    暂停全文检索及sql server服务 开启sql server服务 再开启全文检索服务 (D)SQL Server 右键属性==>安全选项中的“所有权链接:”“允许跨数据库所有权链接”前面的勾要勾上(此操作需要重起SQL Server)。...

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录.zip

    SQL Server 2008支持多种类型的JOIN,包括INNER JOIN、LEFT JOIN(OUTER JOIN)、RIGHT JOIN和FULL OUTER JOIN。这些操作用于合并来自两个或更多表的数据,根据指定的匹配条件。 3. **子查询**: 子查询是嵌套在...

    sql server 2012 T-SQl基础教程 源码和示例数据库

    2. **Chapter 03 - Joins - Solutions**:在这个章节,你将学习如何连接两个或更多表以获取跨表的数据,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)和自连接(SELF JOIN)的概念和实践。...

    SQL Server Native Client 11-sqlncli-11驱动

    10. **故障排查**:当遇到连接问题或性能问题时,SQL Server Native Client 11提供了详细的错误信息和诊断工具,帮助开发者快速定位并解决问题。 总结来说,SQL Server Native Client 11是一个强大的数据库访问库,...

    安装SQL SERVER 2008问题解决

    "安装SQL SERVER 2008问题解决" 在安装SQL Server 2008时,可能会遇到各种问题,影响安装的正常进行。...安装SQL Server 2008需要注意许多细节,了解可能遇到的问题和解决办法,对于成功安装SQL Server 2008非常重要。

    Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

    2. **JOIN操作**:T-SQL支持INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN等不同类型的连接,用于合并来自两个或更多表的数据。 3. **子查询**:嵌套在其他查询中的查询,可以作为表达式的一部分或者在WHERE...

    SqlServer中Group By高级使用--Inner Join分组统计

    在SQL Server数据库管理中,Group By语句是用于对数据进行分组并计算每个组的汇总信息的关键工具。通常,我们使用聚合函数如COUNT、SUM、AVG、MIN和MAX等与Group By一起,以便对特定列进行分析。然而,当我们需要在...

    Inside Microsoft SQL Server 2008 T-SQL Programming.pdf

    综上所述,《Inside Microsoft SQL Server 2008 T-SQL Programming》是一本非常适合想要深入了解SQL Server 2008底层机制和技术细节的专业书籍。它不仅覆盖了T-SQL编程的基础知识,还深入探讨了许多高级主题,如存储...

    [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

    对于那些已经有一定SQL基础,但希望进一步提升自己在SQL Server 2012环境下解决问题能力的人来说,这是一本非常有价值的参考书。阅读《SQL Server 2012 T-SQL Recipes》的PDF文件,读者将有机会系统地探索这个强大的...

    SQL Server数据库占用过多内存的解决方法

    通过对SQL Server内存使用机制的理解,我们可以采取多种措施来优化内存管理和查询性能。合理配置最大内存使用量、优化查询策略、合理使用索引等方法可以帮助我们有效控制SQL Server的内存占用,并提高整体系统的性能...

    sql server2019安装包

    6. **SQL Server on Linux and Docker**:SQL Server 2019继续支持在Linux操作系统和Docker容器上运行,增强了跨平台兼容性。 7. **SQL Server Management Studio (SSMS)**:SSMS是用于管理SQL Server实例的重要...

    SQL Optimizer for SQL Server 10.0.3

    《SQL Server 10.0.3 SQL Optimizer:提升T-SQL性能的艺术》 SQL Server作为企业级的关系型数据库管理系统,其性能优化是数据库管理员和开发人员关注的重点。SQL Optimizer for SQL Server 10.0.3 正是一款针对SQL ...

    SqlServer数据库中文乱码问题解决方法

    总之,解决SQL Server中的中文乱码问题需要关注数据库的排序规则设置,以及在数据传输和存储过程中保持编码的一致性。通过正确配置这些方面,可以确保中文数据在SQL Server环境中正常显示和处理。

    Microsoft SQL Server2005技术内幕:T-SQL查询(中文PDF版)part1

    该书解释并比较了sql server 2000和sql server 2005在数据库开发相关问题上的解决方案,深入讨论了sql server 2005中新增的t-sql编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解...

    《Microsoft SQL Server 2005技术内幕:T-SQL查询》示例代码

    T-SQL(Transact-SQL)是微软对标准SQL的扩展,是SQL Server的核心组件,用于数据库管理、数据查询和程序开发。这本书的主要目标是帮助读者掌握T-SQL查询的各种技巧和最佳实践,以提升在SQL Server环境中的数据处理...

Global site tag (gtag.js) - Google Analytics