数据库常用调试技巧

##查看数据库链接的用户
sp_who
sp_who ‘active’--活动用户
sp_who ‘sa’ --sa用户

##杀死链接进程
kill spid--链接的id

##设置数据脱机或者联机
alter database zxris_plt
set offline/online


在SQL Server里查看当前连接的在线用户数

use master

select loginame,count(0) from sysprocesses
group by loginame
order by count(0) desc

select nt_username,count(0) from sysprocesses
group by nt_username
order by count(0) desc

查看sql server 2k5里面每个数据库的链接数量
select count(*), b.name from sysprocesses a join sysdatabases b on a.dbid=b.dbid group by b.name

select * from sysprocesses

select * from sysdatabases

干掉 sygate ntsd -c q -p pid

如果某个SQL Server用户名test连接比较多,查看它来自的主机名:

select hostname,count(0) from sysprocesses where loginame='test'
group by hostname
order by count(0) desc

##Sqlserver2005日志文件太大,使其减小的方法:


运行下面的三行 dbName为数据库名:

backup log dbName with NO_LOG
backup log dbName with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)

##清空日志方法:
DUMP TRANSACTION 库名 WITH NO_LOG


如果某个SQL Server用户名test连接比较多,查看它最后一次操作的时间范围分组:

select convert(varchar,last_batch,111),count(0) from sysprocesses where loginame='test'
group by convert(varchar,last_batch,111)
order by count(0) desc

如果从主机(www)来的连接比较多,可以查看它的进程详细情况

select * from??sysprocesses where hostname='www'

如果www机器主要提供网页服务,可能是asp程序处理连接时出了问题, 生成杀这些进程的SQL语句:

select 'kill '+convert(varchar,spid) from sysprocesses where hostname='www'

如果这样的问题频繁出现,可以写一个存储过程sp_KillIdleSpids.sql,

写一个作业, 执行它, 来自动杀掉从主机(www)来但已经一天没有响应的用户连接.

?
?
?
--------------------------------
SQL Server的用户及权限?
?sysadmin 可以在 SQL Server 中执行任何活动?
serveradmin 可以设置服务器范围的配置选项 关闭服务器?
setupadmin 可以管理链接服务器和启动过程?
securityadmin 可以管理登录和 CREATE DATABASE 权限 还可以读取错误日志和更改密码?
processadmin 可以管理在 SQL Server 中运行的进程?
dbcreator 可以创建 更改和除去数据库?
diskadmin 可以管理磁盘文件?
bulkadmin 可以执行 BULK INSERT 语句?
?
固定数据库角色 描述?
db_owner 在数据库中有全部权限?
db_accessadmin 可以添加或删除用户ID?
db_securityadmin 可以管理全部权限 对象所有权 角色和角色成员资格?
db_ddladmin 可以发出ALL DDL但不能发出GRANT REVOK或DENY语句?
db_backupoperator 可以发出DBCC CHECKPOINT和BACKUP 语句?
db_datareader 可以选择数据库内任何用户表中的所有数据?
db_datawriter 可以更改数据库内任何用户表中的所有数据?
db_denydatareader 不能选择数据库内任何用户表中的任何数据?
db_denydatawriter 不能更改数据库内任何用户表中的任何数据?
?
一些sql中的扩展存储的总结?
xp_availablemedia 显示系统上可用的盘符'C:' xp_availablemedia?
xp_enumgroups 列出当前系统的使用群组及其说明 xp_enumgroups?
xp_enumdsn 列出系统上已经设置好的ODBC数据源名称 xp_enumdsn?
xp_dirtree 显示某个目录下的子目录与文件架构 xp_dirtree 'C:inetpubwwwroot'?
xp_getfiledetails 获取某文件的相关属性 xp_getfiledetails 'C:inetpubwwwroot.asp'?
dbp.xp_makecab 将目标计算机多个档案压缩到某个档案里所压缩的档案都可以接在参数的后面用豆号隔开 dbp.xp_makecab 'C:lin.cab','evil',1,'C:inetpubmdb.asp'?
xp_unpackcab 解压缩 xp_unpackcab 'C:hackway.cab','C:temp',1?
xp_ntsec_enumdomains 列出服务器域名 xp_ntsec_enumdomains?
xp_servicecontrol 停止或者启动某个服务 xp_servicecontrol 'stop','schedule'?
xp_terminate_process 用pid来停止某个执行中的程序 xp_terminate_process 123?
dbo.xp_subdirs 只列某个目录下的子目录 dbo.xp_subdirs 'C:?
?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、本程序参考【SQL Server Management Studio】的操作习惯编写。 2、实时显示sql语法错误,定位错误代码,提示错误原因,方便修改调试。 3、可执行多条sql语句,或各种分组统计语句。前提是数据库支持该语法。 例1、执行简单的Sql语句:select,insert,delete,update 等 例2、[sqlserver2008]执行T-Sql语句: declare @aa int set @aa=123*2+456*3-789 select @aa 计算结果 例3、[sqlserver2008]使用统计函数compute,返回多组查询结果: select name,score from 学生成绩表 order by name compute sum(score),avg(score) by name 例4、[sqlserver2008]执行多行查询语句,返回多组查询结果: select name from 学生成绩表 select score from 学生成绩表 例5、[sqlserver2008]执行存储过程,返回查询结果及各参数值。 declare @aa int,@ret int exec @ret=p_update 1,1,@aa output select @aa 参数值,@ret 返回值 4、显示上述语句所得到的查询结果。 5、sql代码输入框中如果有【被选择文本】,则仅执行【被选择文本】部分的代码,以便对一组sql语句进行细化调试。 [升级日志] 0.0:实现大体框架,执行基本的sql语句与结果查询。 1.0:优化查询结果与错误提示。 1.1:优化sql语句执行机制,优化查询显示方法。 1.2:处理编辑框“被选择文本”属性不正确的bug。该bug表现为调试时与编译后“被选择文本”不一致。 1.3:修正当查询结果中的第一个记录集已关闭时,其它记录集不显示的bug。 1.4:增加功能:读入Execl和目录文件时,可以选择是否将第一行作为字段名。 1.5:修正因记录集非空导致的非查询类语句影响行数不显示的问题。 1.6:增加对MySql数据库的支持,增加MyODBC驱动安装与卸载功能。 1.7:加密数据库登录信息,以防密码泄露。 1.8:修正某些MDB数据库密码破解不正确的现象。 1.9:修正某些MDB数据库密码返回空文本的问题。 2.0:调整MDB数据库连接时输入密码的长度限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值