sql server2005发布服务不能删除的解决办法

有一个数据库chinatown做了本地发布,另一台服务器之前有做订阅,估计是订阅服务器上的订阅已经被删了,所以在删本地发布的时候怎么也删不掉。说这个发布内还有订阅,但删下面的订阅又说需连上订阅服务器才能删,连上后还是删不掉。比较头疼。

解决办法:

在发布服务器上执行:

EXEC sp_removedbreplication ‘chinatown’;

chinatown为数据库名,不是发布名。

Sql Server 批量增加表索引的T-SQL

Sql Server 内有一批表,需增加一个索引,表名为ct_user_jewe_00 – ct_user_jewe_99,编写如下T-SQL完成:

declare @i int
declare @table varchar(100)
declare @index varchar(100)
declare @sql nvarchar(1000)
SET @i=0
WHILE @i<=99
BEGIN
BEGIN TRANSACTION
IF @i < 10
BEGIN
SET @table=’dbo.ct_user_jewe_0’+CONVERT(char(5),@i)
SET @index=’IX_ct_user_jewe_0’+CONVERT(char(5),@i)
END
ELSE
BEGIN
SET @table=’dbo.ct_user_jewe_’+CONVERT(char(5),@i)
SET @index=’IX_ct_user_jewe_’+CONVERT(char(5),@i)
END
SET @sql=’CREATE NONCLUSTERED INDEX ‘+@index+’ ON ‘+@table
SET @sql=@sql+’ ( uId ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]’
PRINT @sql
execute sp_executesql @sql
SET @i=@i+1
COMMIT
END

SQL2005删除用户的时候,产生“数据库主体在该数据库中拥有架构,无法删除”的解决办法

SQL2005删除用户的时候,产生“数据库主体在该数据库中拥有架构,无法删除”的解决办法

–执行如下SQL语句

ALTER   AUTHORIZATION   ON   SCHEMA::db_owner   TO   dbo;
–然后手动删除就可以了。

或者:

先删除此用户对应的架构,然后在删除对应的用户
1.SQL SERVER MANAGEMENT STUDIO—数据库—安全性—-构架,先删除对应的构架(注意db_owner的所有者)
2.SQL SERVER MANAGEMENT STUDIO—数据库—安全性—用户,删除对应的用户

sql server 增加带默认值字段的sql语句

sql server 增加带默认值字段的sql语句,sql server比较特别,需要分开写。呵呵

BEGIN TRANSACTION
GO
ALTER TABLE dbo.gl_gemblitz_users ADD
uAppUser varchar(1000) NULL,
uAppUserInfo text NULL,
uFaceInfo varchar(50) NULL
GO
ALTER TABLE dbo.gl_gemblitz_users ADD CONSTRAINT
DF_gl_gemblitz_users_uAppUser DEFAULT (”) FOR uAppUser
GO
ALTER TABLE dbo.gl_gemblitz_users ADD CONSTRAINT
DF_gl_gemblitz_users_uAppUserInfo DEFAULT (”) FOR uAppUserInfo
GO
ALTER TABLE dbo.gl_gemblitz_users ADD CONSTRAINT
DF_gl_gemblitz_users_uFaceInfo DEFAULT (”) FOR uFaceInfo
GO
COMMIT

update dbo.gl_gemblitz_users set uAppUser=”,uAppUserInfo=”,uFaceInfo=”

利用typeperf工具收集SQL Server性能数据

  通常DBA在监控和优化SQL Server数据库DBA,都想利用命令行工具。其中经常要做的一件事情,就是收集服务器性能数据,包括CPU ,内存和磁盘利用率以及SQL Server特定数据。这时你就可以利用TypePerf.exe这个命令行工具来帮你捕获这些性能数据。

  TypePerf.exe是一个命令行工具,包括把Windows操作系统的性能计数器数据输出到命令窗口或写入到支持该功能的日志文件格式中。

  Windows操作系统以对象及其相关联的计数器的形式,提供了非常多的性能数据。例如, SQL Server提供了sqlserver统计对象的详细报告,包括了登录、注销、数据库连接等信息; 有些对象摆脱了计数器方式,转化为特定的实例。还是以sqlserver为例:数据库对象详细提供了每一个数据库的数据文件和事务日志文件大小,已使用事务日志的百分比,活动事务等。您可以指定一个单一的数据库或所有数据库结合在一起,作为该实例。

  需要提醒的是,在SQL Server实例有个特殊的含义,即命名实例。

  作为是典型的命令行工具,typeperf也有许多参数供选择,让您根据实际需要进行调整。打开一个命令提示符并输入以下命令:

  typeperf -?

  您会看到下面的输出:

  用法:

  typeperf {

  | -cf <文件名>

  | -q [object]

  | -qx [object]

  } [选项]

  参数:

  要监视的性能计数器。

  选项:

  -? 显示跟上下文相关的帮助。

  -f 输出文件格式。默认值是 CSV。

  -cf <文件名> 含有监视的性能计数器的文件,一个计数器一行。

  -si <[[hh:]mm:]ss> 示例间的时间。默认值是 1 秒。

  -o <文件名> 输出文件或 SQL 数据库的路径。默认值为 STDOUT。

  -q [object] 列出已安装的计数器(无范例)。要列出某个对象的计数器,

  包括对象名,如 Processor。

  -qx [object] 列出已安装的计数器(带范例)。要列出某个对象的计数器,

  包括对象名,如 Processor。

  -sc 要收集的示例数量。默认值为,在 CTRL+C 之前都进行采样。

  -config <文件名> 含有命令选项的设置文件。

  -s 在计数器路径中没有指定服务器的情况下要监视的服务器。

  -y 不用提示对所有问题都回答 yes。

  使用typeperf的最终目标,是采用一种可重复的方式来捕捉性能数据。例如:指定您选择在一个批处理文件,执行特定操作; 默认情况下该命令执行后,性能数据将输出到命令窗口,您也可以使用- f选项指定一个CSV文件(逗号分隔值) , TSV文件(制表符分隔值)将性能数据输出到指定文件中。

  使用typeperf捕捉性能数据之前,我们需要明确哪些性能对象时可用的。采用以下两个选项,您可以获得指定的机器上的性能对象列表:

  -q [object] 列出已安装的计数器(无范例)。

  -qx [object] 列出已安装的计数器(带范例)。

  在上述两个选项中,[object]是可选的参数,如果指定了该参数,将对对象列表进行过滤。默认是显示当前机器上的性能对象,你可以用-s 来指定其他的机器。

  输入以下命令可以获得SQL Server缓冲管理器对象的所有技术器列表:

  TYPEPERF -q "SQLServer:Buffer Manager"

  你可以看到类似以下的输出内容:

  SQLServer:Buffer ManagerBuffer cache hit ratio

  SQLServer:Buffer ManagerPage lookups/sec

  SQLServer:Buffer ManagerFree list stalls/sec

  SQLServer:Buffer ManagerFree pages

  SQLServer:Buffer ManagerTotal pages

  SQLServer:Buffer ManagerTarget pages

  SQLServer:Buffer ManagerDatabase pages

  SQLServer:Buffer ManagerReserved pages

  SQLServer:Buffer ManagerStolen pages

  SQLServer:Buffer ManagerLazy writes/sec

  SQLServer:Buffer ManagerReadahead pages/sec

  SQLServer:Buffer ManagerPage reads/sec

  SQLServer:Buffer ManagerPage writes/sec

  SQLServer:Buffer ManagerCheckpoint pages/sec

  SQLServer:Buffer ManagerAWE lookup maps/sec

  SQLServer:Buffer ManagerAWE stolen maps/sec

  SQLServer:Buffer ManagerAWE write maps/sec

  SQLServer:Buffer ManagerAWE unmap calls/sec

  SQLServer:Buffer ManagerAWE unmap pages/sec

  SQLServer:Buffer ManagerPage life expectancy

  输入以下命令可以获得tempdb这个数据库实例所有的计数器列表:

  TYPEPERF -qx "SQLServer:Databases" | FIND "tempdb"

  你可以看到类似以下的输出内容:

  SQLServer:Databases(tempdb)Data File(s) Size (KB)

  SQLServer:Databases(tempdb)Log File(s) Size (KB)

  SQLServer:Databases(tempdb)Log File(s) Used Size (KB)

  SQLServer:Databases(tempdb)Percent Log Used

  SQLServer:Databases(tempdb)Active Transactions

  SQLServer:Databases(tempdb)Transactions/sec

  SQLServer:Databases(tempdb)Repl. Pending Xacts

  SQLServer:Databases(tempdb)Repl. Trans. Rate

  SQLServer:Databases(tempdb)Log Cache Reads/sec

  SQLServer:Databases(tempdb)Log Cache Hit Ratio

  SQLServer:Databases(tempdb)Bulk Copy Rows/sec

  SQLServer:Databases(tempdb)Bulk Copy Throughput/sec

  SQLServer:Databases(tempdb)Backup/Restore Throughput/sec

  SQLServer:Databases(tempdb)DBCC Logical Scan Bytes/sec

  SQLServer:Databases(tempdb)Shrink Data Movement Bytes/sec

  SQLServer:Databases(tempdb)Log Flushes/sec

  SQLServer:Databases(tempdb)Log Bytes Flushed/sec

  SQLServer:Databases(tempdb)Log Flush Waits/sec

  SQLServer:Databases(tempdb)Log Flush Wait Time

  SQLServer:Databases(tempdb)Log Truncations

  SQLServer:Databases(tempdb)Log Growths

  SQLServer:Databases(tempdb)Log Shrinks

  上面这个实例( – x选项)报告了每个SQL Server数据库所包含的所有的SQLServer:Databases对象(所有与数据库相关联的所有实例)的性能计数器。上面的输出结果,通过FIND管道命令对结果进行过滤,只包含了tempdb数据。

  当您正在使用一个命名的SQL Server实例,性能对象将反映的SQL Server实例的名称。例如我的计算机运行的一个实例的SQL Server 2000 Enterprise Edition的是名为sql2000ee ; 则性能对象就被命名为mssql$sql2000ee,而不是上面所示的sqlserver。

  使用- Q或- qx选项,可以获得性能计数器列表,可以将该列表重定向到一个文本文件(如MyCounters.txt),如果你只想捕获其中几个性能计数器,可以编辑该文件。

  TYPEPERF -qx "SQLServer:Databases" | FIND "tempdb" >>MyCounters.txt

  本例中我们对MyCounters.txt 文件进行编辑,编辑后的计数器列表如下图所示:

  SQLServer:Databases(_Total)DBCC Logical Scan Bytes/sec

  SQLServer:Databases(tempdb)Percent Log Used

  SQLServer:Buffer ManagerBuffer cache hit ratio

  SQLServer:General StatisticsUser Connections

  SQLServer:Locks(_Total)Lock Requests/sec

  SQLServer:SQL StatisticsBatch Requests/sec

  执行typeperf命令行时,带上- CF<文件名>选项,这样该命令执行时,就将从制定的文本文件中读取计数器列表了。上面这个命令将从MyCounters.txt这个文本文 件中读取计数器信息,并显示技术器数值,每隔一秒钟刷新一次。该命令将一直重复执行,直至用户按下了Ctrl+C快捷键。

  TYPEPERF -f CSV -o MyCounters.csv -si 15 -cf MyCounters.txt -sc 60

  上面这个例子,从MyCounters.txt这个文本文件中读取计数器信息,将技术器数值写入到MyCounter.csv文件中,每隔15秒钟执行一次,共执行60次(15分钟后执行完)。