Fanr

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年3月28日

摘要: Detect CPU Bottleneck in SQL ServerBy : Kasim Wirama, MCDBAWhen you have your database server experiencing a problem, there are many possibilities here, such as CPU, memory, hard disk or database configuration itself. There should be a systematic way to trouble shooting performance problem in SQL Se 阅读全文
posted @ 2011-03-28 14:12 Fanr_Zh 阅读(573) 评论(0) 推荐(0) 编辑

摘要: Detecting and Resolving I/O BottleneckBy : Kasim Wirama, MCDBAI/O subsystem is one of critical component in SQL Server. I/O subsystem is used when SQL Server moves page between memory and I/O subsystem. With intensive activity of DML and DDL, SQL Server generates significant log entries and to tempd 阅读全文
posted @ 2011-03-28 13:51 Fanr_Zh 阅读(1044) 评论(0) 推荐(0) 编辑

摘要: Detect Memory Bottleneck in SQL ServerBy : Kasim Wirama, MCDBAThis article, I would like to give information about memory bottleneck at SQL Server. The easiest way to know whether your SQL Server undergoes memory bottleneck is by looking at Task Manager, tab Performance, Physical Memory section. Com 阅读全文
posted @ 2011-03-28 13:07 Fanr_Zh 阅读(442) 评论(0) 推荐(0) 编辑

2011年3月27日

摘要: SQL Server内存还会影响性能,而如果在SQL Server系统中有太多的内存就是浪费钱,内存太少就又对性能十分有害。遗憾的是,决定你什么时候在系统里需要更多的内存很灵活。当内存出现问题时,你就会发现disk I/O就会增加,同样磁盘列队也会增加。你也会发现buffer cache hit ratio减少、page life会延长。随着内存需求的增加,你就会开始发现日志文件里的错误信息。 SQL Server内存的一个重要部分已经分开了,这样一来就造成了性能退化。持续时间:%n秒、工作组(KB):%w、committed (KB)::%c、内存利用:%u。 SQL Server遇到了%. 阅读全文
posted @ 2011-03-27 18:46 Fanr_Zh 阅读(803) 评论(0) 推荐(0) 编辑

摘要: sql server 2000 订阅发布 同步数据报错时间: 2011-3-26背景: 生产数据库有100+G,需要做一个订阅发布来容灾。订阅为请求订阅,分发服务器和发布服务器是同一个服务器问题: 发布订阅都已经完毕,在数据库使用快照同步时,报错: 报错内容大致如下: bcp 遇到意外的eof。 网上也有同类型的报错,但是很多都是因为发生错误的那张表中存在LOB数据类型导致。 该报错表上没有LOB字段,但是有一个varchar(2000)的字段,数据一共也只有100+(R)。 具体是否是varchar(2000)字段引起需要经过测试。解决办法: 使用手工同步快照 阅读全文
posted @ 2011-03-27 17:12 Fanr_Zh 阅读(328) 评论(0) 推荐(0) 编辑

摘要: 概述“数据库镜像”是一种针对数据库高可用性的基于软件的解决方案。其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中。建议使用不同位置的两台服务器来承载。在同一时刻,其中一台上的数据库用于客户端访问,充当“主体服务器”角色;而另一台则根据镜像会话的配置和状态,充当热备份服务器,即“镜像服务器角色”,这两种角色不是绝对的。优点l 增强了数据保护功能l 提高了数据库的可用性l 提高了生产数据库在升级期间的可用性工作方式在“数据库镜像会话”中,主体服务器和镜像服务器是相互通信和协作,并双方互补。主体服务器角色上的数据库副本为生产数据库。数据库镜像会尽快将主体 阅读全文
posted @ 2011-03-27 12:57 Fanr_Zh 阅读(558) 评论(0) 推荐(1) 编辑

2011年3月26日

摘要: 利用动态管理视图提高SQL Server索引效率(一)利用动态管理视图提高SQL Server索引效率(二)利用动态管理视图提高SQL Server索引效率(三) 阅读全文
posted @ 2011-03-26 17:33 Fanr_Zh 阅读(259) 评论(0) 推荐(0) 编辑

摘要: 优化数据库的注意事项: 1、关键字段建立索引。 2、使用存储过程,它使SQL变得更加灵活和高效。 3、备份数据库和清除垃圾数据。 4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5、清理删除日志。 SQL语句优化的基本原则: 1、使用索引来更快地遍历表。 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:①.有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order b 阅读全文
posted @ 2011-03-26 14:30 Fanr_Zh 阅读(335) 评论(0) 推荐(0) 编辑

摘要: 方法一: 现象:数据库Log日志太大了,shrink不掉。于是想把数据库文件卸下来,删除log,再附加上。附加失败。 提示错误: 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 'metadb'。CREATE DATABASE 将终止。 设备激活错误。物理文件名 'd:\metadb.LDF' 可能有误。 环境:MSSQL SERVER 2000 企业版 解决过程: 1.建一个新库newdb 2.停掉数据库。删除新库的log文件,讲metadb.mdf覆盖newdb.mdf。 3.启动数据库服务器。数据库newdb的状态为“置疑”。 4 阅读全文
posted @ 2011-03-26 13:49 Fanr_Zh 阅读(7459) 评论(0) 推荐(0) 编辑

2011年3月25日

摘要: SQL Server 同步订阅数据库 出现 主键不唯一错误修改如下:分发数据库的系统存储过程sp_msget_repl_commands进行修改后就可以了,将其中定义临时表中的一个字段的数据类型修改,declare @snapshot_seqnos table(subscription_seqno varchar(16) primary key),将varchar(16)改为varbinary(16)。 阅读全文
posted @ 2011-03-25 12:55 Fanr_Zh 阅读(292) 评论(0) 推荐(0) 编辑

2011年3月24日

摘要: net stop sqlserveragent net stop mssqlserver net start mssqlserver net start sqlserveragent 阅读全文
posted @ 2011-03-24 15:22 Fanr_Zh 阅读(346) 评论(0) 推荐(0) 编辑

2011年3月23日

摘要: SQL Server中事务日志自动增长对性能的影响(上)SQL Server中事务日志自动增长对性能的影响(下) 阅读全文
posted @ 2011-03-23 20:23 Fanr_Zh 阅读(487) 评论(0) 推荐(0) 编辑

摘要: 创建并管理SQL Server Analysis Services分区(一)创建并管理SQL Server Analysis Services分区(二)创建并管理SQL Server Analysis Services分区(三) 阅读全文
posted @ 2011-03-23 20:15 Fanr_Zh 阅读(273) 评论(0) 推荐(0) 编辑

摘要: 本文详细介绍了优化SQL Server数据库查询方法。 SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 ●可以通过以下方... 阅读全文
posted @ 2011-03-23 20:03 Fanr_Zh 阅读(244) 评论(0) 推荐(0) 编辑

摘要: http://www.searchdatabase.com.cn/showcontent_28790.htm 阅读全文
posted @ 2011-03-23 18:59 Fanr_Zh 阅读(272) 评论(0) 推荐(0) 编辑

摘要: SQL语句优化的原则: 1 .使用索引来更快地遍历表 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:①.有大量重复值、且经常有范围查询(between, > ,< ,> =,< =)和order by、group by发生的列,可考虑建立群集索引;②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引;③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。索引虽有助于提高性能但不是索引越多越好,恰好相反过多的索引会导致系统低效。用户在 阅读全文
posted @ 2011-03-23 18:52 Fanr_Zh 阅读(277) 评论(0) 推荐(0) 编辑

摘要: 大家都用过企业管理器中的--“收缩数据库”,里面的功能的确可以收缩数据库的日志文件(.ldf)和数据文件(.mdf),但都会发现同样的问题,在收缩“数据文件”(.mdf)时根本收缩不了多少。最多截段自动增长部份的,没有根本释放在日常操作中删除数据库的沉冗空间。 上述应该是很多人遇到过的,笔者也千试万试试出来的方法,为了确定您的数据库安全,在执行下例的操作前,请先备份你的数据库。 1.首先你要找到你的数据库最大的表,一般是数目最大的表,如果不清楚,请在查询分析器查询: DBCC SHOWCONTIG 接着用 sp_spaceused 表 来查询reserved 的值和 data 的值 的差异可看 阅读全文
posted @ 2011-03-23 13:26 Fanr_Zh 阅读(316) 评论(0) 推荐(0) 编辑

摘要: 索引重建任务的时间间隔要相对一致。 如果索引较小,就没有必要去调整填充因子。 在索引级别上进行监控和更新,而不是表级别上。 保存填充一直在0,或者75和100之间。如果你要将填充因子设置为低于75,那么你必须自信你在做什么。保持较低的Scan Density和较低的平均Page Density是十分重要的情形。做一些观察,在将填充因子取值降低前,找出表被读取的频繁程度。 如果Scan Density高于或等于90%,别去改变填充因子,或者调整任务中填充因子至少不应该是首先被调整的。 如果Scan Density在60%到90%之间,小小地降低一下填充因子,例如降低幅度2%。 如果Scan De 阅读全文
posted @ 2011-03-23 12:45 Fanr_Zh 阅读(442) 评论(0) 推荐(0) 编辑

2011年3月22日

摘要: 使用性能监视器找出SQLServer硬件瓶颈 开始SQLServer性能调优的最佳地方就是从性能监视器(系统监视器)开始。通过一个24小时的周期对一些关键的计数器进行监控,你将对你SQLServer服务器的硬件瓶颈了如指掌。一般来说,使用性能监视器去创建一个一些关键的计数器的24小时周期的监控日志。当你决定创建这个日志的时候,你需要选择一个典型的24小时的周期,例如,选择一个典型的比较忙的日期,而不是周日或节假日。一旦你将这些捕获的数据形成日志后,在性能监视器的图形界面下会显示计数器的推荐值。你在上表中记下均值、最小值、峰值。做完这些后,用你的结果跟下面的分析比较。通过你的结果和下面的建议值进 阅读全文
posted @ 2011-03-22 22:16 Fanr_Zh 阅读(3383) 评论(0) 推荐(1) 编辑

摘要: 1.SQL Server系统数据库介绍 SQL Server有四个重要的系统级数据库:master,model,msdb,tempdb. master:记录SQL Server系统的所有系统级信息,包括实例范围的元数据,端点,链接服务器和系统配置设置,还记录其他数据库是否存在以及这些数据问文件的位置等等.如果master不可用,数据库将不能启动. model:用在SQL Server 实例上创建的所有数据库的模板。因为每次启动 SQL Server 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。 msdb:由SQL Server 代理用来计划警 阅读全文
posted @ 2011-03-22 19:30 Fanr_Zh 阅读(358) 评论(0) 推荐(0) 编辑

摘要: 同样的命题在SQL Server 2005中,微软发布了一个报表,可以直接查看,但是这个报表不能用于SQL Server 2000。 于是我就写了下面这几句话,可以返回同样的结果。 create table tmp (name varchar(50),rows int,reserved varchar(50), data varchar(50),index_size varchar(50),unused varchar(50)) insert into tmp (name,rows,reserved, data,index_size,unused) exec sp_msforeachTable 阅读全文
posted @ 2011-03-22 12:35 Fanr_Zh 阅读(1412) 评论(0) 推荐(0) 编辑

摘要: SQLServer2000同步复制技术实现步骤作者:gaojier 日期:2007-06-25字体大小: 小 中 大一、 预备工作1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户(SynUser)2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:我的电脑--D:\ 新建一个目录,名为: PUB--右键这个新建的目录--属性--共享--选择"共享该文件夹"- 阅读全文
posted @ 2011-03-22 09:26 Fanr_Zh 阅读(1036) 评论(0) 推荐(0) 编辑

2011年3月21日

摘要: -- top 10 引发i/oSELECT (total_logical_reads/execution_count) AS avg_logical_reads,(total_logical_writes/execution_count) AS avg_logical_writes,(total_physical_reads/execution_count) AS avg_physical_reads,execution_count,(SELECT SUBSTRING(text,statement_start_offset/2 +1, (CASE WHEN statement_end_offs 阅读全文
posted @ 2011-03-21 22:07 Fanr_Zh 阅读(375) 评论(0) 推荐(0) 编辑

摘要: --缓冲区池消耗内存总量SELECTSUM(multi_pages_kb + virtual_memory_reserved_kb + shared_memory_reserved_kb +awe_allocated_kb) AS[Used by BPool,kb]FROM sys.dm_os_memory_clerksWHERE type='MEMORYCLERK_SQLBUFFERPOOL'--查询确认哪些内部组件窃取了缓冲区池中大部分的页面SELECTTOP10 type, SUM(single_pages_kb) AS stolen_mem_kbFROM sys.dm_ 阅读全文
posted @ 2011-03-21 21:57 Fanr_Zh 阅读(369) 评论(0) 推荐(0) 编辑

摘要: --检测CPU压力的一个方法是计算运行状态下的工作进程数量,--通过执行如下的DMV查询可以得到这个信息SELECT COUNT(*) AS workers_waiting_for_cpu,t2.scheduler_idFROM sys.dm_os_workers AS t1, sys.dm_os_schedulers AS t2 WHERE t1.state='RUNNABLE' AND t1.scheduler_address = t2.scheduler_address AND t2.scheduler_id<255GROUP BY t2.scheduler_id- 阅读全文
posted @ 2011-03-21 21:31 Fanr_Zh 阅读(642) 评论(0) 推荐(0) 编辑