在SQL Server的数据存储中与NTFS簇大小有关

NTFS是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008、Windows Vista和Windows 7的标准文件系统。NTFS取代了文件分配表(FAT)文件系统,为Microsoft的Windows系列操作系统提供文件系统。NTFS对FAT和HPFS(高性能文件系统)作了若干改进,例如,支持元数据,并且使用了高级数据结构,以便于改善性能、可靠性和磁盘空间利用率,并提供了若干附加扩展功能,如访问控制列表(ACL)和文件系统日志。该文件系统的详细定义属于商业秘密 ,但 Microsoft 已经将其注册为 知识产权产品。

  NTFS (New Technology File System)是 Windows NT 操作环境和 Windows NT 高级服务器网络操作系统环境的文件系统。NTFS 的目标是提供:可靠性,通过可恢复能力(事件跟踪)和热定位的容错特征实现;增加功能性的一个平台;对 POSIX 需求的支持;消除 FAT 和 HPFS 文件系统中的限制。

  NTFS 提供长文件名、数据保护和恢复,并通过目录和文件许可实现安全性。NTFS 支持大硬盘和在多个硬盘上存储文件(称为卷)。例如,一个大公司的数据库可能大得必须跨越不同的硬盘。NTFS 提供内置安全性特征,它控制文件的隶属关系和访问。从DOS 或其他操作系统上不能直接访问 NTFS 分区上的文件。如果要在DOS下读写NTFS分区文件的话可以借助第三方软件;现如今,Linux 系统上已可以使用 NTFS-3G 进行对 NTFS 分区的完美读写,不必担心数据丢失。

  Win 2000采用了更新版本的NTFS文件系统NTFS 5.0,它的推出使得用户不但可以像Win 9X那样方便快捷地操作和管理计算机,同时也可享受到NTFS所带来的系统安全性。 NTFS 允许文件名的长度可达 256 个字符。虽然 DOS 用户不能访问 NTFS 分区,但是 NTFS 文件可以拷贝到 DOS 分区。每个 NTFS 文件包含一个可被 DOS 文件名格式认可的 DOS 可读文件名。这个文件名是 NTFS 从长文件名的开始字符中产生的。

在SQL Server的数据存储中与NTFS簇大小有关的话题今天来说一下在SQL Server的数据存储中与NTFS簇大小有关的话题。NTFS在超过2GB的分区中,格式化时会默认使用4KB的簇,这基本上就成了现在大部分硬盘的簇大小。在簇不大于4KB时,可以使用碎片整理。

首先感谢微软发明的NTFS文件系统,确实是非常健壮的文件系统,功能强大。

簇是磁盘进行I/O读写时的最基本单位(就是NTFS中的分配单元)。

今天来说一下在SQL Server的数据存储中与NTFS簇大小有关的话题。NTFS在超过2GB的分区中,格式化时会默认使用4KB的簇,这基本上就成了现在大部分硬盘的簇大小。在簇不大于4KB时,可以使用碎片整理。

NTFS簇大小可以设置成从512B~64KB大小,当然必须在格式化时指定,否则就不可以更改了。簇太小,空间利用率高,但分区表较大,碎片多,性能较差;簇太大,空间利用率低,但碎片少,性能较好。于是4KB可谓是普遍的选择。

现在的硬盘,动则容量几百GB,空间似乎已经不再是问题。但磁盘的I/O一直是性能的瓶颈,为了提高磁盘读写速率,各位可谓是绞尽脑汁了。无论如何,硬盘只要选用了,改变它的物理设计似乎并不太可能,也不推荐这样做,于是就只能从其它的地方着手了,方法如用RAID陈列了、经常地整理碎片、用好的芯片、用好的数据线了等等,能用的都用了。

SQL Server服务器是对I/O要求高的应用,它的数据文件读写基本单位是页,每页的大小是8KB,连续的8个页组成一个区,也就是64KB的区,且一般数据文件都比较大,一般生产环境中,几GB以上是常见的。并且基本上不会有人在SQL Server的存储上用碎片整理了,因此我们可以将专用于SQL Server存储的磁盘分区格式化成为64KB的簇,这样在不浪费空间的前提下,又可以提高性能。

有没有风险?当然有了,在磁盘出现灾难时,丢的数据可能就会多一点,最少会丢64KB了,不过实践证明这种方案还是非常可行的,因为一般服务器的RAID陈列分块也是64KB,两个都是64KB,就无所谓了。

其它应用场景各位也可以参考,不对之处,欢迎批评。

时间: 2024-09-20 06:17:48

在SQL Server的数据存储中与NTFS簇大小有关的相关文章

关于SQL Server打开数据表中的XML内容时报错的解决办法

从SQL Server2005开始提供了一种新的数据类型XML type,它允许用户将数据以XML文件的格式直接存储到数据表中.结合在ASP.NET中使用Linq to Sql,我们可以非常方便地将XML文件存储到SQL Server数据库中.但是在默认情况下,如果你存储的XML文件比较大(超过2MB),在SQL Server管理器中不能直接点击查看XML内容而报以下错误提示: 如何解决该问题呢?很简单,其实错误提示中已经描述地很清楚了,在SQL Server Management Studio

数据存储-sql server在同一表中筛选出两次刷卡记录时间大于等于40分钟的员工数据

问题描述 sql server在同一表中筛选出两次刷卡记录时间大于等于40分钟的员工数据 刷卡进出数据存储在同一表中,姓名有重复的,一个人可能刷了2次,要求选出在时间段2014-12-28 11:00:00到2014-12-28 13:00:00内两次刷卡记录时间间隔大于等于40分钟的员工 logtime (时间 )logcard (卡号 )logid () logname(姓名) logbm (部门) 解决方案 ```select * from 同一表 a where logtime betw

sqlserver-关系型数据库(sql server, oracle, mysql)中的数据Load到HBasez中

问题描述 关系型数据库(sql server, oracle, mysql)中的数据Load到HBasez中 我现在的数据是在关系型数据库(如sql server, oracle, mysql)中,且主键为复合主键,我现在想把这些数据导入到HBase中该怎么做啊?各位大神帮帮忙啊 解决方案 用Kettle抽数工具,很方便支持各种数据库之间的数据转换 解决方案二: 试试这个 数据抽取工具V3.0 http://download.csdn.net/detail/haonengbao/766908

RDA实现SQL CE与SQL Server间数据存取

本文介绍如何利用 RDA(RemoteDataAccess远程数据存取)实现掌上电脑Pocket PC(简称PPC)上的SQL Server CE 2.0与桌面SQL Server 2000数据库间的数据存取.我们将采用Visual Basic .Net 2003进行智能设备端的程序开发. 一. 概述 PPC程序与桌面PC进行通信的编程方式目前有两种,1.利用Socket编程与桌面程序进行通信:2.利用RDA和Replication(复制)进行数据库编程来完成与桌面SQL Server数据库的存

SQL Server 2005 数据维护实务

1.关于SQL Server 2005数据维护计划 为了使SQL Server数据库的性能保持在最佳的状态,数据库管理员应该对每一个数据库进行定期的常规维护.这些常规任务包括重建数据库索引.检查数据库完整性,更新索引统计信息,数据库内部一致性检查和备份等.这些常规的数据库维护任务需要经常重复,而且繁琐耗时,所以往往被管理员忽略.而且,现在的数据库管理员一天到晚都被很多其他的任务压得喘不过气来,根本没有时间去进行日常维护工作.认识到这些问题的存在,SQL Server通过制定维护计划,提供了一个可

SQL Server 2016 列存储技术做实时分析

title: SQL Server 2016 列存储技术做实时分析 author: 风移 摘要 数据分析指导商业行为的价值越来越高,使得用户对数据实时分析的要求变得越来越高.使用传统RDBMS数据分析架构,遇到了前所未有的挑战,高延迟.数据处理流程复杂和成本过高.这篇文章讨论如何利用SQL Server 2016列存储技术做实时数据分析,解决传统分析方法的痛点. 传统RDBMS数据分析 在过去很长一段时间,企业均选择传统的关系型数据库做OLAP和Data Warehouse工作.这一节讨论传统R

SQL Server 2012列存储索引技术

title: SQL Server 2012列存储索引技术 author: 风移 摘要 MS SQL Server 2012首次引入了列存储索引(Columnstore Index)来加速数据分析(OLAP)和数据仓库(Data Warehouse)场景的查询,它主要是通过将数据按列压缩存储的方式来减少查询对磁盘IOPS开销和CPU开销,最终达到提升查询效率,降低响应时间的目的.当然,列存储索引也不是一把万能的钥匙,在SQL Server 2012版本中它有诸多非常严苛限制条件. 这篇文章会从以

SQL Server 迁移数据到MySQL

原文:SQL Server 迁移数据到MySQL 一.背景 由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL:由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据: 上网找了些资料,如:将ACCESS和MSSQL导入MYSQL中.MySQL Migration 实现 MSSQL 到 MySQL数据迁移,虽然不知道里面的做法是否可以成功转移,但是里面的过程比较复杂,没有去尝试,后来自己找到了方法,最

无法在 SQL Server 2005 Manger Studio 中录入中文的

问题表现:在 SQL Server 2005 Manger Studio中打开表,无法输入中文,只能输入英文 问题重现:1. 我们建立如下三个测试表:CREATE TABLE ta(    id int IDENTITY,    col varchar(50)) CREATE TABLE tb(    col varchar(50),    id int IDENTITY) CREATE TABLE tc(    col1 varchar(50),    col2 as col1) 2. 在SQ