随笔分类 - SQL SERVER 管理
摘要:监控数据库数据文件以及磁盘的空间情况是每个DBA必要的工作。sqlserver 2008 r2 sp1之后的版本提供了一个很实用的DMF sys.dm_os_volume_stats来返回数据文件以及文件所在磁盘的空间情况。相比之前的xp_fixeddrives更加的实用。 SELECT DB_NAME(df.database_id) as dbName, physical_name AS DataFile, size AS FileSize, volume_mount_point AS Drive, CAST(total_bytes/1024/1024/1024 AS VAR...
阅读全文
摘要:日常管理SQL Server时需要经常查看日志文件,但SQL SERVER错误日志变得很大(虽然有不同编号的几个日志文件),在查看时还是显得很慢,查找也不太方便,SQL SERVER提供的一个扩展存储过程:xp_ReadErrorLog,借助这个存储过程,可以很方便的查看错误日志。xp_readerrorlog 一共有7个参数:1. 存档编号2. 日志类型(1为SQL Server日志,2为SQL Agent日志)3. 查询包含的字符串4. 查询包含的字符串5. LogDate开始时间6. 结果排序,按LogDate排序(可以为降序"Desc" Or 升序"Asc
阅读全文
摘要:一些用在SQL 2000的企业管理GUI中,并且不打算用于其他的流程。微软已预计将其中的一些存储过程从未来的SQL Server版本中删除(或已经删除了)。虽然这些存储过程可能很有用并为你节省了很多时间,但是他们可以在任何时候改变他们的函数或简单的删除掉。 下面的图表显示了当许多存储过程从一个Microsoft SQL Server版本移入另一个版本时,引入了新的存储过程,而原来的一些则从安装包里删除了。大多数的存储过程,如果不是所有的,要求用户是系统管理员服务器角色以便执行这些存储过程。和文件系统交互的存储过程还要求执行存储过程的用户(还有SQL Server的服务帐户)具有访问文件/文件.
阅读全文
摘要:SP_LOCK :报告有关锁的信息。在此存储过程之中,很清楚的说明了锁的类型和几种模式:Typenchar(4)锁的类型:RID = 表中单个行的锁,由行标识符 (RID) 标识。KEY = 索引内保护可串行事务中一系列键的锁。PAG = 数据页或索引页的锁。EXT = 对某区的锁。TAB = 整个表(包括所有数据和索引)的锁。DB = 数据库的锁。FIL = 数据库文件的锁。APP = 指定的应用程序资源的锁。MD = 元数据或目录信息的锁。HBT = 堆或 B 树索引的锁。在 SQL Server 中此信息不完整。AU = 分配单元的锁。在 SQL Server 中此信息不完整。模式nva
阅读全文
摘要:在一台计算机上面同时安装两个sql server数据库实例,第一次安装默认为机器名,端口号为14331、如果不知道服务器名,却想登陆的话可以直接输入127.0.0.1登陆之后,在新建查询中输入:SELECT @@SERVERNAME能够查询出当时的服务器名或者服务器名和实例名,你可以用这个名称直接登陆即可2、如果你想要在知道实例名的基础之上知道端口号,或者说你不想使用默认的端口号,那么这个时候你就需要对端口号进行修改。可以在‘配置工具’-->'SQL SERVER 配置管理器'--->'SQL SERVER网络配置' --->'实例名.
阅读全文
摘要:动态管理视图 sys.dm_os_wait_stats返回执行的线程所遇到的所有等待的相关信息。可以使用该聚合视图来诊断 SQL Server 以及特定查询和批处理的性能问题。列名数据类型说明wait_typenvarchar(60)等待类型的名称。waiting_tasks_countbigint该等待类型的等待数。该计数器在每开始一个等待时便会增加。wait_time_msbigint该等待类型的总等待时间(毫秒)。该时间包括 signal_wait_time_ms。max_wait_time_msbigint该等待类型的最长等待时间。signal_wait_time_msbigint正在
阅读全文
摘要:--- 平均I/O时间长的语句USE tempdbSELECT TOP 10 (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_phys_reads, execution_count, statement_start_offset as stmt_start_offset, SUBSTRING(...
阅读全文
摘要:摘自:http://blogs.msdn.com/b/apgcdsd/archive/2011/02/11/sql-server-tempdb.aspx系统数据库是一个全局资源,供连接到 SQL Server 实例的所有用户使用。在现在的SQL Server里,其使用频率可能会超过用户的想象。如果Tempdb空间耗尽,许多操作将不能完成。作为一个支持工程师,会被经常问到象“我的Tempdb为什么这么大?”“是谁把我的Tempdb空间用完的?”在SQL 2000的时候,这个问题很难回答。好在SQL 2005以后,引入了一张新的管理视图:sys.dm_db_file_space_usage。通过查
阅读全文
摘要:--查询一个库有那些同步USE TESTGOSELECT sct.dest_db ,srt.dest_owner , srt.name , sct.srvname, pub.pubid , srt.dest_table --,srt.artid ,sct.artidFROM syspublications as pub WITH(NOLOCK)inner join sysarticles as srt WITH(NOLOCK) on pub.pubid = srt.pubidinner join syssubscriptions sct with(nolock) on srt.art...
阅读全文
摘要:/*语法ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 } 参数database_name 要修改的数据库的名称。COMPATIBILITY_LEVEL { 80 | 90 | 100 }要使数据库与之兼容的 SQL Server 版本。该值必须为下列值之一:80 = SQL Server 2000 90 = SQL Server 2005 100 = SQL Server 2008 备注对于所有 SQL Server 2008 安装,默认的兼容级别都为 100。除非 model 数据库有更低的兼容级
阅读全文
摘要:--查询数据库状态SELECT DATABASEPROPERTYEX(' DBName','STATUS')--设置DBName在线alter database DBName set online--设置DBName离线alter database DBName set offline转自:http://www.mossfly.com/set-sql-server-status.html--SQL SERVER
阅读全文
摘要:由于在一个环境中有两个实例是相同的,每次更新都要连接两次ssms,然后跟老大说了。能不能走别的方式不让这么更新,结果出乎意料,老大提供了一个别的方法。嘻嘻~~让我 Managent Studio 中注册一下这两台服务器,把它们放在一个组里面,然后在这个组上去执行查询,这样是同时在两个上面执行。然后我就去找注册服务器了。步骤:在视图---->点到注册服务器--->点开数据库引擎---->在下面的Local Server Groups右击----->新建服务器组 起个名字(好比:test)----->然后在对应的文件夹下面右击----->新建服务器注册-----
阅读全文
摘要:--注意事项:SQL Server 不会持续测试达到为自动收缩配置的阈值的数据库。相反,它会寻找可用的数据库并找出第一个配置为自动收缩的数据库。它将检查该数据库,并在需要时收缩该数据库。然后,它会等待几分钟,再检查下一个配置为自动收缩的数据库。换句话说,SQL Server 不会同时检查所有数据库,也不会同时收缩所有数据库。它将以循环方式处理各个数据库,以使负载在时间上错开。也就是说收缩的时间不可控, 所以产品环境一般不会设置,对于开发,测试环境的可以设置.对于系统数据库分发数据库不能设置(master, model, msdb, tempdb和 sys.databases.is_distri
阅读全文
摘要:如图,无登录名,所属为孤立帐户其表现可以为:同名在安全性中存在,但是没存在对某库的访问权限;访库安全性中有用户名,为上图所示。孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。孤立帐户的产生一般是一下两种:1.将备份的数据库在其它机器上还原从另一个服务器恢复数据库,登录是独立的创建的(不是从其它服务器复制过来的),这个时候创建的就是孤儿用户。2.重装系统或SQL SERVER之后只还原了用户库解决方法是使用sp_change_users_login来修复。sp_change_us
阅读全文
摘要:性能优化探讨与分析:1、首先, SQL SERVER(与所有DBMS一样)具有特定的硬件建议。在学习和研究SQL SERVER时,使用任何旧的计算机作为服务器都可以。 但对用于生产的服务器来说,应该坚持遵循这些硬件建议。2、一般来说,关键的生产DBMS应该运行在自己的专用服务器上。3、SQL SERVER是用一系列的默认设置预告配置好的,从这些设置开始通常是很好的。但过一段时间后你可能需要调整内存分配、缓冲区大小等。4、SQL SERVER 一个多用户多线程的DBMS,换言之,它经常同时执行多个任务。如果这些任务中的某一个执行缓慢,则所有请求都会执行缓慢。 你可以使用WINDOWS Syste
阅读全文
摘要:SELECT ROWSFROM sysindexesWHERE id=OBJECT_ID( 'InboundPlan') AND indid <2--查询库内各表select so.name as 'TableName', so.type,SUM(row_count) as 'TotalRows' from sys.dm_db_partition_stats as ps inner join sys.objects as so on ps.object_id=so.object_id where index_id<=1 and so.
阅读全文