SQL Server管理 这些你懂吗?
SQL Server管理 你做得好吗?下文这些可能会对你的工作有一些帮助 不妨耐心的看看吧
数据库文件有 mdf ndf ldf三种文件 mfd为主数据库文件 ndf为从数据库文件 ldf为日志数据库文件 每个数据库mdf文件只有一个 ndf文件可以有多个
数据页大小为 k sql数据库最大一个特性是数据无跨页 比如一条数据 k 那么 条数据需要 页存储 而不是两页 数据库扩展页是 页 也就是如果一 张表存储空间不够了 我们要插入一条 k的数据 数据库不是分配一页 而是 页 也就是 k空间 这个我们windows系统也是 我们见一个文本文 件 然后输入一个a 那么这时候系统为我们文件分配的内存不是 个字节 而是 k空间
如果一个数据页大小只有 k 那么像txt image这些数据怎么存储呢?
那么我们这时系统存储的是txt image的堆地址 她们的数据存储在堆里 那么他们地址最多不会超过 字节
数据库内存 我们读取一条数据是先在内存里找 如果内存没有 我们就会在数据库里面找 然后把数据读到内存里面来 那么我们更新一条数据呢?
我们更新(增 删 改)一条数据不是mit的时候数据就写到数据库里了 而是数据库会有一个chekpoints 在 checkpoints的时候数据库 会一页一页的把数据往数据库里写 这个在sql 里的时间大概是 分钟只需一次 那么没有交易的数据在哪里 呢?那么可能存在两个地方 一个是在temptdb里面 一个是在buffercahce里面
对大的系统数据库应注意几个问题 我们都知道数据库瓶颈是 磁盘阵列有I/O瓶颈 如果我们数据库超作频繁 这样我们数据库日志文件增大比较快 如果我们把数据库文件和日志文件放在一个磁盘里那么 会导致越来操作 数据库的数据越慢 那么我们可以把日志文件和数据文件放在 不同的磁盘里 一个磁盘两个通道 如果放在不同磁盘那么写数据和日志可以并行超作了 还有我们每天最好 个小时做一次日志备份 这样我们可以减小我们的日 志文件大小 因为日志文件备份后就从日志里面删除了
数据库文件组的利用 如果我们数据库设计很大 我们还可以设计数据库文件组 把不同的数据放在不同的文件组 不同文件组放在不同磁盘 如果表大 我们还可 以把一个表放在不同文件组 很多时候我们把一个表放在不同文件组 可能比放在一个文件组快 因为放在不同文件组是并行访问的 但是放在一个文件组需要顺序 访问 一般没有必要的情况下 还是建议大家做表分区
建数据库的时候我们需要注意 我们数据文件放在磁盘的格式fat 的允许数据库文件最大为 g如果我们建立好数据库后再发现这个问题就麻烦了 要不停的 加数据库文件 所以建议放在NTFs格式磁盘上 数据库最大容量修改规则 能改大不能该小 那么有没有把数据库改小的办法呢?有的压缩数据库
这里我们可以压缩数据大小
备份数据库注意事项
一定要选上下面那两个勾 这样保证我们备份成功
我们备份数据库(特别是做维护计划的时候)的最好步骤一般用
检查数据库的完整性
日志尾备份(后面我们复灾的时候会讲到)
备份
最好这几个是有顺序来自
我们备份一周备份最好是周末完整备份 差异备份 小时做一次日志备份
数据库性能监视打开方法
比如我们监视应用程序引起的sqlserver死锁 添加监视
我们可以看到如下
都是 诶没有死锁 那么证明我们系统很健康啊 但是监视一般是在服务器闲的时候监视 因为这个也是占用资源的
lishixinzhi/Article/program/SQLServer/201311/22338