- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大规模数据性能优化
大规模数据库性能优化 讲师:王然 议程 建立性能基准 典型问题分析 数据分区技术 建立性能基准 影响性能的因素 性能基准的作用 建立性能基准 影响性能的因素 系统硬件资源 网络系统 操作系统 数据库管理系统 数据库设计 客户端应用设计 工作负载 性能基准的作用 设定性能目标 评估系统运行状况 分析系统性能趋势 量化性能调整效果 建立性能基准 工具 Performance(系统资源) SQL Profiler(数据库实例) SQLDiag(数据库实例) 要素 时间 性能计数器的值 关键事件的相关信息 Demo:建立性能基准 使用T-SQL创建跟踪 关联跟踪数据和Windows性能日志数据 典型问题分析 典型问题 原因分析 问题分类 典型问题 瓶颈 CPU负载分析 内存负载分析 IO负载分析 Tempdb负载分析 原因分析 服务器 数据库 数据库对象 故障原因 问题分类 硬件资源限制 服务器配置不合理 应用程序设计不合理 物理设计不合理 逻辑设计不合理 数据分区技术 什么是分区表 如何实现分区表 如何设计分区表 什么是分区表 表中的数据分布于多个文件组 利用多处理器和多磁盘驱动器来提高性能 管理大型数据表更加容易 表组织和索引组织 如何实现分区表 创建分区函数 1 CREATE PARTITION FUNCTION emailPF (nvarchar(30)) AS RANGE RIGHT FOR VALUES (G, N) 创建分区方案 2 CREATE PARTITION SCHEME emailPS AS PARTITION emailPF TO (fg1, fg2, fg3) 创建分区表或分区索引 3 CREATE TABLE Sales.CustomerEmail (CustID int, email nvarchar(30)) ON EMailPS (email) 如何修改分区表 在分区函数中添加一个分区 1 ALTER PARTITION FUNCTION emailPF () SPLIT RANGE ( ‘K’ ) 删除一个分区 – 合并 2 ALTER PARTITION FUNCTION emailPF () MERGE RANGE ( ‘G’ ) 修改分区方案 3 ALTER PARTITION SCHEME emailPS NEXT USED fg1 使用分区切换高效传输数据 将表作为分区分配到现有的分区表 将分区从一个分区表切换到另一个分区表 重新分配一个分区以形成单个表 从分区表和索引中查询数据和元数据 使用 $PARTITION 函数 访问分区表的分区子集中的所有行。 检查每个分区中有多少行。 确定包含特定分区键值的行位于哪个分区中或将该行插入哪里。 使用目录视图 设计分区表 分区表和索引的计划指南 案例分析:设计分区以管理数据子集 分区表和索引的计划指南 计划分区函数 选择分区依据列 确定分区依据列的值范围 MAX=1000 个分区 计划分区方案 案例分析:设计分区以管理数据子集 在 AdventureWorks 示例数据库的分区方案下,Adventure Works Cycles 通过在 TransactionHistory 表与 TransactionHistoryArchive 表之间切换分区将位于前一个表中的旧数据存档到后一个表中。可通过根据 TransactionDate 字段对 TransactionHistory 进行分区来执行此操作。每个分区的值范围为一个月。TransactionHistory 表维护年度中最新的事务,而 TransactionHistoryArchive 维护以前的事务。通过按这种方式对表进行分区,可以将一年期数据的单月值每月从 TransactionHistory 传输到 TransactionHistoryArchive。 案例分析:设计分区以管理数据子集 在 AdventureWorks 示例数据库的分区方案下,Adventure Works Cycles 通过在 TransactionHistory 表与 TransactionHistoryArchive 表之间切换分区将位于前一个表中的旧数据存档到后一个表中。可通过根据 TransactionDate 字段对 TransactionHistory 进行分区来执行此操作。每个分区的值范围为一个月。TransactionHistory 表维护年度中最新的事务,而 TransactionHistoryArchive 维护以前的事务。通过按这种方式对表进行分区,可以将一年期数据的单月值每月从 TransactionHistory 传输到 TransactionHistor
文档评论(0)