楼主: Cherish_j_wang

[精华] MSSQL DBA 精华总结[处理对象名称中特殊字符]

[复制链接]
论坛徽章:
14
迷宫蛋
日期:2012-03-13 09:50:292014年新春福章
日期:2014-02-18 16:44:08优秀写手
日期:2013-12-18 09:29:15迷宫蛋
日期:2012-06-13 15:28:34咸鸭蛋
日期:2012-06-11 16:11:11灰彻蛋
日期:2012-05-31 10:18:54双黄蛋
日期:2012-05-28 17:45:17茶鸡蛋
日期:2012-05-28 17:27:32蜘蛛蛋
日期:2012-05-28 16:54:09迷宫蛋
日期:2012-05-17 19:00:48
131#
 楼主| 发表于 2014-1-22 13:57 | 只看该作者
maco_wang 发表于 2013-2-27 23:00
谢谢楼主的技术分享!

希望对你有帮助。

使用道具 举报

回复
论坛徽章:
14
迷宫蛋
日期:2012-03-13 09:50:292014年新春福章
日期:2014-02-18 16:44:08优秀写手
日期:2013-12-18 09:29:15迷宫蛋
日期:2012-06-13 15:28:34咸鸭蛋
日期:2012-06-11 16:11:11灰彻蛋
日期:2012-05-31 10:18:54双黄蛋
日期:2012-05-28 17:45:17茶鸡蛋
日期:2012-05-28 17:27:32蜘蛛蛋
日期:2012-05-28 16:54:09迷宫蛋
日期:2012-05-17 19:00:48
132#
 楼主| 发表于 2014-1-22 14:00 | 只看该作者
路人ABCD 发表于 2013-2-19 09:52
好久没登陆,楼主不继续?

不好意思,的确如你所说,是很久没有来了。去年发生了很多事情:
1. 换了工作环境,到了新的地方,新的国度,不断的在适应中
2.当了父亲,每天留给自己的时间相对少了很多
3.在关系型数据库和BigData技术间游走徘徊
...

使用道具 举报

回复
论坛徽章:
14
迷宫蛋
日期:2012-03-13 09:50:292014年新春福章
日期:2014-02-18 16:44:08优秀写手
日期:2013-12-18 09:29:15迷宫蛋
日期:2012-06-13 15:28:34咸鸭蛋
日期:2012-06-11 16:11:11灰彻蛋
日期:2012-05-31 10:18:54双黄蛋
日期:2012-05-28 17:45:17茶鸡蛋
日期:2012-05-28 17:27:32蜘蛛蛋
日期:2012-05-28 16:54:09迷宫蛋
日期:2012-05-17 19:00:48
133#
 楼主| 发表于 2014-1-22 14:01 | 只看该作者
zsping 发表于 2012-6-27 09:50
非常感謝...大有用處

这就是写这个帖子的初衷

使用道具 举报

回复
论坛徽章:
17
授权会员
日期:2005-10-30 17:05:33慢羊羊
日期:2015-03-04 14:19:44马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:112013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:篮球
日期:2012-11-05 16:49:01ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41ERP板块每日发贴之星
日期:2011-07-20 01:01:012011新春纪念徽章
日期:2011-02-18 11:43:32
134#
发表于 2014-1-22 14:59 | 只看该作者
Cherish_j_wang 发表于 2014-1-22 13:56
其实也是对自己工作内容的一次梳理和再总结,还是比较有意思的。尤其是看到那么多热心朋友的回复,希望对 ...

相对而言,我就惭愧了,经常上来下载资料,自己平时很少做总结,

使用道具 举报

回复
论坛徽章:
14
迷宫蛋
日期:2012-03-13 09:50:292014年新春福章
日期:2014-02-18 16:44:08优秀写手
日期:2013-12-18 09:29:15迷宫蛋
日期:2012-06-13 15:28:34咸鸭蛋
日期:2012-06-11 16:11:11灰彻蛋
日期:2012-05-31 10:18:54双黄蛋
日期:2012-05-28 17:45:17茶鸡蛋
日期:2012-05-28 17:27:32蜘蛛蛋
日期:2012-05-28 16:54:09迷宫蛋
日期:2012-05-17 19:00:48
135#
 楼主| 发表于 2014-1-23 13:13 | 只看该作者

MSSQL DBA 精华总结[使用SQL脚本部署Windows性能监视器]

本帖最后由 Cherish_j_wang 于 2014-1-23 13:18 编辑

MSSQL DBA 精华总结
                        之使用SQL脚本部署Windows性能监视器(二)
目的
这一贴主要是使用SQL语句读取性能监视器抓取到的文件。前提:我的Demo是在性能监视器文件以bincirc格式抓取到的。
脚本


  1. set nocount on


  2. declare
  3.         @local_server_name sysname
  4.         ,@perfmon_data_file sysname
  5.         ,@sql nvarchar(max)
  6. ;

  7. select
  8.         @local_server_name = @@SERVERNAME
  9. ;


  10. ;WITH DATA
  11. AS(
  12.         --shoud be init.
  13.         select server_name = @@SERVERNAME,perfmon_data_file = 'D:\DBA\perfmon\7B023654B9674647A069069D3B854FC2\perfmon_data.tsv'
  14.         union all
  15.         select server_name = 'ZZZ',perfmon_data_file = 'D:\DBA\perfmon\45673654B96746123069069D3B854FC2\perfmon_data.tsv'
  16. )
  17. select top 1 @perfmon_data_file = perfmon_data_file
  18. from data
  19. where  server_name =  @local_server_name


  20. if object_id('tempdb..#temp','U') is not null
  21.         drop table #temp
  22. create table #temp
  23. (
  24.         id int identity(1,1) not null primary key
  25.         ,data_list  varchar(max)
  26. )

  27. /*
  28. SET @sql = N'
  29. ;WITH data
  30. AS (
  31. select c =
  32.         cast(''<V><![CDATA['' + replace(
  33.                                                                         replace(
  34.                                                                                                 replace(
  35.                                                                                                                         cast(c as varchar(max)),CHAR(10),'']]></V><V><![CDATA[''
  36.                                                                                                                 ),'','','']]></V><V><![CDATA[''
  37.                                                                                         ),CHAR(13),'']]></V><V><![CDATA[''
  38.                                                                         ) + '']]></V>''
  39.                                                                         as xml)
  40. FROM OPENROWSET(BULK N''' + @perfmon_data_file + ''', SINGLE_BLOB) as T(c)
  41. )
  42. SELECT
  43.         data_list =  T.C.value(''(./text())[1]'',''varchar(max)'')
  44. FROM data as a
  45. CROSS APPLY C.nodes(''./V'') AS T(C)
  46. '
  47. */

  48. set
  49.         @sql = N'
  50. exec sys.xp_cmdshell ''type ' + @perfmon_data_file + '''
  51. '
  52. ;

  53. --print @sql
  54. insert into #temp
  55. exec sys.sp_executesql @sql


  56. ;WITH point_time_set
  57. as(
  58.         select
  59.                 point_time = left(data_list,PATINDEX('%"        "%',data_list))
  60.                 ,data_list
  61.         from #temp
  62.         where data_list is not null
  63.         and id > 2 --remove column titile
  64. )
  65. --select * from point_time_set
  66. ,ProcessorTime_set_pre
  67. as(
  68.         select
  69.                 *
  70.                 ,new_data_list = replace(data_list,point_time,'')
  71.         from point_time_set
  72. )
  73. --select * from ProcessorTime_set_pre
  74. ,ProcessorTime_set
  75. as(
  76. select
  77.         Point_Time
  78.         ,ProcessorTime = left(new_data_list,PATINDEX('%"        "%',new_data_list))
  79.         ,data_list
  80. from ProcessorTime_set_pre
  81. )
  82. --select * from ProcessorTime_set
  83. ,TransportMsgs_set_pre
  84. as(
  85. select
  86.         *
  87.         ,new_data_list = replace(data_list,Point_Time + ProcessorTime,'')
  88. from ProcessorTime_set
  89. )
  90. --select * from TransportMsgs_set_pre
  91. ,TransportMsgs_set
  92. as(
  93. select
  94.         Point_Time
  95.         ,ProcessorTime
  96.         ,TransportMsgsPerSec = left(new_data_list,PATINDEX('%"        "%',new_data_list))
  97.         ,data_list
  98. from TransportMsgs_set_pre
  99. )
  100. --select * from TransportMsgs_set
  101. ,TransmissionQMsgs_set_pre
  102. as(
  103. select
  104.         *
  105.         ,new_data_list = replace(data_list,Point_Time + ProcessorTime + TransportMsgsPerSec,'')
  106. from TransportMsgs_set
  107. )
  108. --select * from TransmissionQMsgs_set_pre
  109. ,TransmissionQMsgs_set
  110. as(
  111. select
  112.         Point_Time
  113.         ,ProcessorTime
  114.         ,TransportMsgsPerSec
  115.         ,TransmissionQMsgsPerSec = left(new_data_list,PATINDEX('%"        "%',new_data_list))
  116.         ,data_list
  117. from TransmissionQMsgs_set_pre
  118. )
  119. --select * from TransmissionQMsgs_set
  120. ,DiskQueueLength_pre
  121. as(
  122. select *
  123.                 ,new_data_list = replace(data_list,Point_Time + ProcessorTime + TransportMsgsPerSec + TransmissionQMsgsPerSec,'')
  124. from TransmissionQMsgs_set
  125. )
  126. --select  * from DiskQueueLength_pre
  127. ,DiskQueueLength
  128. as(
  129. select
  130.         Point_Time
  131.         ,ProcessorTime
  132.         ,TransportMsgsPerSec
  133.         ,TransmissionQMsgsPerSec
  134.         ,DiskQueueLength = left(new_data_list,PATINDEX('%"        "%',new_data_list))
  135.         ,data_list
  136. from DiskQueueLength_pre
  137. )
  138. --select * from DiskQueueLength
  139. ,DiskReadBytes_pre
  140. as(
  141. select *
  142.                 ,new_data_list = replace(data_list,Point_Time + ProcessorTime + TransportMsgsPerSec + TransmissionQMsgsPerSec + DiskQueueLength,'')
  143. from DiskQueueLength
  144. )
  145. --select * from DiskReadBytes_pre
  146. ,DiskReadBytes
  147. as(
  148. select
  149.         Point_Time
  150.         ,ProcessorTime
  151.         ,TransportMsgsPerSec
  152.         ,TransmissionQMsgsPerSec
  153.         ,DiskQueueLength
  154.         ,DiskReadBytesPerSec = left(new_data_list,PATINDEX('%"        "%',new_data_list))
  155.         ,data_list
  156. from DiskReadBytes_pre
  157. )
  158. --select * from DiskReadBytes
  159. ,DiskWriteBytes_pre
  160. as(
  161. select *
  162.                 ,new_data_list = replace(data_list,Point_Time + ProcessorTime + TransportMsgsPerSec + TransmissionQMsgsPerSec + DiskQueueLength + DiskReadBytesPerSec,'')
  163. from DiskReadBytes
  164. )
  165. --select * from DiskReadBytes_pre
  166. ,DiskWriteBytes
  167. as(
  168. select
  169.         Point_Time
  170.         ,ProcessorTime
  171.         ,TransportMsgsPerSec
  172.         ,TransmissionQMsgsPerSec
  173.         ,DiskQueueLength
  174.         ,DiskReadBytesPerSec
  175.         ,DiskWriteBytesPerSec = left(new_data_list,PATINDEX('%"        "%',new_data_list))
  176.         ,data_list
  177. from DiskWriteBytes_pre
  178. )
  179. --select * from DiskWriteBytes
  180. select
  181.         Point_Time
  182.         ,ProcessorTime
  183.         ,TransportMsgsPerSec
  184.         ,TransmissionQMsgsPerSec
  185.         ,DiskQueueLength
  186.         ,DiskReadBytesPerSec
  187.         ,DiskWriteBytesPerSec
  188.         ,BatchRequestsPerSec = reverse(left(reverse(data_list),PATINDEX('%"        "%',reverse(data_list))))
  189.         --replace(data_list,Point_Time + ProcessorTime + TransportMsgsPerSec + TransmissionQMsgsPerSec + DiskQueueLength + DiskReadBytesPerSec + DiskWriteBytesPerSec,'')
  190. from DiskWriteBytes
  191. --select * from BatchRequests_pre
复制代码
同样附上脚本附件。
read_data.sql (4.79 KB, 下载次数: 30)

如此,数据有了以后,剩下的事情就是拿这些数据生成报表了,比如使用Excel就是简单方便的方法。



使用道具 举报

回复
论坛徽章:
2
喜羊羊
日期:2015-03-04 14:52:462015年新春福章
日期:2015-03-06 11:58:18
136#
发表于 2014-2-21 13:59 | 只看该作者
工作需要用到 sql server 2005, 这个太好了, 非常感谢楼主的分享

使用道具 举报

回复
论坛徽章:
3
蛋疼蛋
日期:2012-03-09 12:44:00技术图书徽章
日期:2014-04-04 13:33:56技术图书徽章
日期:2014-05-23 16:44:53
137#
发表于 2014-3-25 17:37 | 只看该作者
这样的帖子必须UP、、、、、

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
99
技术图书徽章
日期:2014-03-27 09:30:56秀才
日期:2018-04-08 14:48:31
138#
发表于 2014-4-6 21:45 | 只看该作者
支持,不错哈

使用道具 举报

回复
ChpiTer 该用户已被删除
139#
发表于 2014-4-24 11:02 | 只看该作者
收藏了
感谢分享

使用道具 举报

回复
论坛徽章:
0
140#
发表于 2014-9-12 09:37 | 只看该作者
好好好,这些就是我所需要的,好文章就是要顶,推荐

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表