42.统计APP应用的DB连接及IP情况
select b.hostname,a.clIEnt_net_address,b.program_name,count(1) as Qty
from sys.dm_exec_connections a(nolock) inner join sys.sysprocesses b(nolock)
on a.session_ID=b.spID
where b.spID>50
--and a.clIEnt_net_address like'XXX.XXX.XXX.%'--限定某一类IP
group by b.hostname,b.program_name
order by 4 desc
43.查看及收缩数据库log
--查看日志大小
select DB_name(database_ID),name,size/128
from sys.master_files
where type_desc='LOG' and size/128>1000
order by size desc
--拼收缩脚本
select 'use '+DB_name(database_ID)+char(10)+'GO'+char(10)+'DBCC SHRINKfile (N'''+name+''',TruncATEONLY)'+CHAR(10)+'GO'
from sys.master_files
where type_desc='LOG' and size/128>1000
order by size desc
44.权限授权,例如将某表的select 权限授予指定用户
use [DB]
GO
GRANT SELECT ON [表] TO [用户]
GO
45.查看现在正在sql Server执行的命令
首先查看sysprocesses系统表的数据(存放有关在 Microsoft sql Server 实例中运行的进程的信息,这些进程可以是客户端进程或系统进程)。
查询示例:
select * from master..sysprocesses
在等到所有执行命令的进程ID了,如果要查看该进程的具体的SQL语句,可以利用以下语句查看:
dbcc inputbuffer(进程号)
例如:
dbcc inputbuffer(56)
46.将数据库设置为单用户模式
EXEC sp_dboption '数据库名字','Single User','TRUE'
EXEC sp_renamedb '数据库名字','更新后的数据库名字'
EXEC sp_dboption '更新后的数据库名字','FALSE'
47.查看sql Server当前正在执行的查询语句
select db_name(r.database_ID) as db_name,s.group_ID,r.session_ID,r.blocking_session_ID as blocking,s.login_name,r.wait_type current_wait_type,r.wait_resource,r.last_wait_type,r.wait_time/1000 wait_s,r.status request_status,r.command,r.cpu_time,r.reads,r.writes,r.logical_reads,r.total_elapsed_time,r.start_time,s.status session_status,substring( st.text2+1case when r.statement_end_offset = -1 then len(convert(nvarchar(max),st.)) else (r.statement_end_offset - r.statement_start_offset)2 end ) ) indivIDual_queryfrom sys.dm_exec_requests rinner join sys.dm_exec_sessions s on r.session_ID=s.session_IDouter APPLY sys.dm_exec_sql_text(r.sql_handle) stwhere ((r.wait_type<>'MISCELLANEOUS' and r.wait_type <> disPATCHER_QUEUE_SEMAPHORE' ) or r.wait_type is null) and r.session_ID>50 <>@@spIDorder by r.session_ID asc
48.导出所有Job的创建脚本
step1 .在Microsoft sql Server Management Studio中,选择sql Server Agent->Jobs,按F7打开Object Explorer Details窗口,选中所有Job;
Step2.点击鼠标右键,选择Script Job as->CREATE To->New query Editor windows,然后所有Job会以sql脚本的方式显示在查询窗口中。
49 安装sql Server实例过程报错
错误信息
Title: Microsoft sql Server 2008 R2 Setup------------------------------The following error has occurred:The process does not possess the 'SeSecurityPrivilege' privilege which is required for this operation.Click Retry' to retry the Failed action,or click Cancel' to cancel this action and continue setup.For help,click: http://go.microsoft.com/fwlink?linkID=20476&Prodname=Microsoft+sql+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=10.50.1600.1&EvtType=0x88792597%25400xD69AB41D------------------------------buttonS:&RetryCancel------------------------------
原因
此行为是设计使然。 除了添加以本地管理员身份运行安装程序的用户帐户之外,安装用户帐户还需要以下默认用户权限才能成功完成安装程序。
本地策略对象显示名称 | 用户权限 |
管理审核和安全日志 | SeSecurityPrivilege |
解决方案:
以具有管理凭据的用户身份登录到计算机。单击 " 开始",单击 " 运行",键入 Control admintools,然后单击 "确定"。双击 " 本地安全策略"。在 " 本地安全设置 " 对话框中,单击 " 本地策略",双击 " 用户权限分配",然后双击 " 管理审核和安全日志"。在 " 管理审核和安全日志 " 对话框中,单击 " 添加用户或组"。在 " 选择用户或组 " 对话框中,键入用于安装程序的用户帐户,然后单击 "确定" 两次。单击 " 退出 " 以关闭 " 本地安全设置 " 对话框。此问题的详细资料可参照以下网址:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1960bc81-d48e-462f-933a-c51cd9f94651/install-sql-server-2008-rtm-on-windows-server-2008-r2-cluster?forum=sqlsetupandupgrade
https://docs.microsoft.com/zh-cn/troubleshoot/sql/install/installation-fails-if-remove-user-right
在安装sql Server 2016时,会提前检查,例如检查不通过,报错如下,处理方法一样的
修改后,需要重启电脑才能生效
50.通过scripts管理复制订阅的表(增加/删除)
--查看复制订阅属性select * distribution..MSdistribution_agents添加复制分发对象exec configdb.dbo.uxpm_repl_addarticle @publisher_db =XXXXDB',@publication ????@article 表名'删除复制分发对象exec configdb.dbo.uxpm_repl_droparticle '启动快照,初始化数据select EXEC msdb.dbo.sp_start_job '''+name+'''' msdb..sysjobswhere name like %????%'----publication的名字and category_ID=15
总结
以上是内存溢出为你收集整理的SQL Server 数据库部分常用语句小结(四)全部内容,希望文章能够帮你解决SQL Server 数据库部分常用语句小结(四)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)