I/O 构架
数据库的主要作用是存储和检索数据,因此执行大量磁盘读写操作是数据库引擎的固有特性之一。磁盘 I/O 操作消耗很多资源,且需相对较长的时间才能完成。在关系数据库软件中,多数逻辑都涉及高效地建立 I/O 使用模式。
Microsoft® SQL Server™ 2000 将很多虚拟内存分配给高速缓冲存储器,并使用此高速缓存减少物理 I/O。每个 SQL Server 2000 实例都有自己的高速缓冲存储器。数据从数据库磁盘文件读入高速缓冲存储器。不必再次物理读取数据即可满足多次逻辑读取数据。数据一直保留在高速缓存内,直到已有一段时间不被引用且数据库需要缓存区读入更多数据。数据只有在被修改后才重新写入磁盘。在物理写将新数据传输回磁盘之前,数据可由逻辑写多次修改。
在 SQL Server 2000 数据库内的数据存储在 8 KB 页内。每组的八个邻接页是一个 64 KB 扩展盘区。高速缓冲存储器也被划分为 8 KB 页。
SQL Server 实例的 I/O 被划分为逻辑和物理 I/O。数据库服务器每次从高速缓冲存储器请求页时,即发生逻辑读取。如果页当前不在缓存区高速缓存内,则执行物理读取将页读入高速缓冲存储器。如果页当前在高速缓存内,则不产生物理读取;高速缓冲存储器只是使用已在内存内的页。当内存中页内的数据被修改时,发生逻辑写。当将页写入磁盘时,发生物理写。在将页物理写入磁盘之前,它有可能在内存内停留足够长的时间以至发生多次逻辑写。
SQL Server 实例的基本性能优化任务之一包括调整 SQL Server 内存的大小。目的是使高速缓冲存储器足够大以使逻辑读取与物理读取的比率达到最大,但又不至大到使过多的内存交换开始对页文件产生物理 I/O。SQL Server 2000 实例在默认配置设置下自动完成这一任务。
通过在虚拟内存内保持相对较大的高速缓冲存储器,SQL Server 实例可以显著减少所需的物理磁盘读取数。一个经常引用的页被读入高速缓冲存储器后很可能会继续留在那里,因此完全不用再进一步读取。
SQL Server 2000 使用 Microsoft Windows NT® 和 Windows® 2000 的下面两个功能来提高其磁盘的 I/O 性能:
散播-聚集 I/O
在 Windows NT 4.0版 Service Pack 2 中引入散播-聚集 I/O 之前,Windows NT 上所有用于磁盘读写的数据必须在邻接的内存区内。如果某个读取以 64 KB 为单位传送数据,则读取请求必须指定邻接 64 KB 内存区域的地址。散播-聚集 I/O 允许读取或写入操作将数据传入或传出内存的非邻接区域。Windows 2000 也支持散播-聚集 I/O。
如果 SQL Server 2000 实例在 64 KB 扩展盘区中读取,则不须分配单个 64 KB 区并将各个页复制到高速缓冲存储器页内。它可以找到八个缓冲区页,然后执行一个散播-聚集 I/O 以指定这八个缓冲区页的地址。Windows NT 或 Windows 2000 直接在缓冲区页内放入八个页,使 SQL Server 实例不需要执行单独的内存复制。
异步 I/O
在异步 I/O 中,应用程序从 Windows NT 或 Windows 2000 中请求读取或写入操作。Windows NT 或 Windows 2000 立即将控制返回给应用程序。应用程序然后可以执行其它的工作,过一会儿执行测试以查看读写操作是否已完成。相反,在同步 I/O 中,操作系统直到读和写完成才将控制返回给应用程序。使用异步 I/O 使 SQL Server 实例得以在个别线程执行批处理时使它们所完成的工作最多。
SQL Server 支持对每个文件执行多个并发异步 I/O 操作。SQL Server 2000 动态确定一个实例能为任何文件发出的最大 I/O 操作数。
分享到:
相关推荐
1. **内存架构**:SQL Server 2008采用了一种名为“缓冲池”的内存管理系统,用于存储数据页和索引页,以减少磁盘I/O。缓冲池由多个缓存页组成,每个缓存页对应数据库中的一个数据页或索引页。 2. **内存分配**:...
- 学习SQL Server,你需要掌握T-SQL语言,理解数据库架构设计,熟悉SQL Server的安全机制和备份恢复策略。 - 对于开发和管理员,理解并运用SQL Server的性能调优工具和技巧至关重要,如查询分析器、动态管理视图...
3. **Spotlight on SQL Server特性**:这款工具可能提供了实时性能监控,包括CPU使用率、内存消耗、磁盘I/O等关键指标;可能有报警机制,当数据库出现异常时自动通知管理员;还可能有性能分析工具,帮助找出影响性能...
NIO(Non-blocking I/O)是Java提供的另一种I/O模型,与传统的阻塞I/O(BIO)相比,NIO具有更高的并发性能。在高并发的聊天系统中,服务器端需要同时处理大量客户端的连接,NIO的非阻塞特性使得服务器可以同时处理多...
这个系统利用了Java的非阻塞I/O(NIO)机制,Socket通信以及多线程IO操作来实现一系列的功能,包括好友管理、聊天交互和文件传输,对于Java学习者来说是一个很好的实践和提升平台。 首先,让我们来了解C/S架构。在C...
### SQLServer管理员手册知识点概述 #### 一、SQL Server 2000概览 - **SQL Server系统介绍**:本章节将详细介绍SQL Server 2000的基础知识,包括其核心组件、服务以及与其他软件的集成方式。 - **新特性和功能**:...
SQL Server 2005是微软公司推出的一款强大的关系型数据库管理系统,其在数据库服务器架构设计上具有多项重要特征和关键技术。在这个系统中,数据库服务器不仅负责存储数据,还负责处理来自应用程序的查询请求,确保...
3. I/O架构:I/O亲和性管理是另一个关键点,它确保了I/O操作与特定处理器之间的绑定,减少了资源争用,提高了处理速度。 此外,Gill还讨论了查询优化和并行性在提升SQL Server性能中的作用。有效的查询优化可以减少...
6. **兼容性测试**:在升级SQL Server版本或应用新的数据库架构时,SQL Optimizer能帮助评估新环境下的查询性能,确保平滑过渡。 在实际使用SQL Optimizer的过程中,需要注意以下几点: - **理解执行计划**:优化...
包括检查数据库的磁盘空间使用信息、日志文件大小及使用情况、表的磁盘空间使用信息、磁盘读写情况、I/O 工作情况、锁与等待、死锁、用户和进程信息、活动用户和进程的信息、SQL Server 的实际内存占用、所有数据库...
### SQL Server 语句优化详解 #### 一、引言 在现代企业级应用中,数据库性能直接影响到系统的响应速度和服务质量。对于SQL Server这样的关系型数据库管理系统而言,语句优化是提高查询效率的关键手段之一。本文将...
### SQL Server 数据库优化之50种方法 在IT领域,特别是对于数据库管理与优化方面,SQL Server作为一款广泛使用的数据库管理系统,其性能优化一直是DBA(数据库管理员)和技术团队关注的重点。本文将根据给定的信息...
以上知识点涵盖了SQL Server数据库优化的主要方面,包括I/O优化、内存管理、CPU优化、查询优化、数据库架构设计、索引管理、事务管理、查询技巧、性能监控以及系统配置等。通过实施这些优化措施,可以显著提升SQL ...
- **表和列的压缩**:通过数据压缩减少存储需求,提高I/O性能。 10. **SQL Server的最新特性**: - **In-Memory OLTP**:利用内存中的数据存储来提升事务处理性能。 - **Query Store**:跟踪查询性能历史,简化...
6. **文件I/O操作**:为了将图像文件存入BLOB字段和从BLOB字段读取出来,开发者需要进行文件的读写操作。这通常涉及到Java的FileInputStream和FileOutputStream类,或者更高级的IO流操作。 7. **数据库设计**:虽然...
性能监视器则是Windows操作系统提供的一个工具,它可以跟踪SQL Server的系统级性能指标,如CPU使用率、内存使用情况和磁盘I/O。 此外,SQL Profiler是SQL Server 2000的另一款重要工具,它能够记录和分析SQL Server...
通过监控SQL Server的性能指标,如CPU使用率、内存占用、磁盘I/O等,管理员可以识别并解决性能瓶颈,调整索引、查询计划,甚至进行数据库架构优化,以提升系统运行效率。 **安全设置**确保了数据库的安全性。管理...
3. **性能计数器**:Windows性能监视器等工具提供了大量的性能计数器,可用于监控SQL Server的各个方面,如CPU利用率、内存使用率、磁盘I/O等。通过对这些数据的分析,可以发现系统资源使用的趋势以及潜在的瓶颈。 ...
综上所述,SQL Server的优化涉及多方面,从软件层面的查询语句优化、索引管理,到硬件层面的资源升级,再到系统架构的设计,每一环都不可忽视。只有综合运用这些策略,才能最大程度地提升SQL Server的性能,满足高...
3. **超快性能**:通过优化查询处理、内存管理和I/O子系统,SQL Server 2012提升了查询执行速度和整体系统性能。 4. **集成服务**:SQL Server 2012的集成服务提供了强大的ETL(提取、转换、加载)功能,支持数据...