SQL Server 学习系列之四(SQL 内幕)

SQL Server 学习系列之一(薪酬方案+基础)

SQL Server 学习系列之二(日期格式问题)

SQL Server 学习系列之三(SQL 关键字)

学习《Microsoft SQL Server 2005技术内幕:存储引擎》的代码笔记备录于此:

 select @@VERSION

 select * from sys.dm_exec_requests  --资源监视器 DMV

 select tb.status
,tb.command
,tb.statement_end_offset
from sys.dm_os_workers ta,sys.dm_exec_requests tb
where ta.task_address=tb.task_address select parent_node_id
--调度器所属节点的ID,表示非一致性内存访问节点(NUMA)
,scheduler_id--调度器的ID
,cpu_id
,is_online--0表示此调度器不会用来处理查询或批
,current_tasks_count
,current_workers_count--线程数
,active_workers_count
,work_queue_count
,pending_disk_io_count--挂起的I/O数
load_factor --内部值,指示此调度器感觉到的负载
from sys.dm_os_schedulers --视图为每个调度器返回一行 select is_preemptive
--1=正在抢先计划运行工作线程
,is_fiber --1=正在以轻型池运行的工作线程
,*
from sys.dm_os_workers --视图为每个工作任务返回一行 select
started_by_sqlservr
--线程发起方 0:由其他组件启动(如,扩展进程);1:SQL已启动进程
,creation_time
,stack_bytes_committed
,affinity
--进程在其运行的CPU掩码,取决于sp_configure affinity mask 配置选项中的值
,locale --线程的缓冲的区域设置为LCID
from sys.dm_os_threads --返回在SQL Server进程中的所有SQLOS线程列表 select
task_state
--SUSPENDED:具有工作线程,但正在等待事件
--RUNNING:当前正在调度器中运行
--DONE:已完成
--PENDING:正在等待的工作线程
--RUNNABLE:可运行,但正在等待接收量程
--SPINLOOP:当等待一个信号时,陷入自旋锁
,context_switches_count
,pending_io_count --此任务执行的物理I/O数
,pending_io_byte_average
,pending_io_byte_count
,scheduler_id --父调度器ID
,session_id --与任务关联的会话ID
from sys.dm_os_tasks--为实例上每一个活动的任务返回一行 select
session_id
,exec_context_id--与任务关联的执行上下文的ID
,wait_duration_ms
,wait_type
,resource_address
,blocking_session_id
,blocking_exec_context_id--正在阻塞的任务的执行上下文的ID
,resource_description
from sys.dm_os_waiting_tasks --返回正在等待资源的任务队列的信息 select *
from sys.tcp_endpoints ta,sys.dm_exec_sessions tb
where ta.endpoint_id=tb.endpoint_id select removed_last_round_count,* from sys.dm_os_memory_cache_clock_hands --内存经纪(Broker):分析SQL Server 有关内存消耗的行为并改善动态内存分配的 select * from sys.dm_os_ring_buffers
where ring_buffer_type='RING_BUFFER_MEMORY_BROKER' --显示一个内存组件使用了多少缓存池之外的空间
select type
,SUM(multi_pages_kb) as 'total(kb)'
from sys.dm_os_memory_clerks
where multi_pages_kb!=0
group by type select SUM(multi_pages_kb)/1024.0 as 'total(M)'
from sys.dm_os_memory_clerks
where multi_pages_kb!=0 select distinct type from sys.dm_os_memory_clerks select physical_memory_in_bytes--/(8.0*1024*1024*1024) --可用物理内存的数量
,virtual_memory_in_bytes--/(8.0*1024*1024*1024)
--对用户模式进程可用的虚拟内存的数量,通过3G开关,可以用它来确定SQLServer是否启动
,bpool_committed --缓冲池中的8K缓冲区数:已提交的物理内存
,bpool_commit_target --缓存池中最优的缓冲区数量
,bpool_visible
from sys.dm_os_sys_info --动态管理视图 select single_pages_kb
,single_pages_in_use_kb
,multi_pages_kb
,multi_pages_in_use_kb
,entries_count--缓存中的条目数
,entries_in_use_count
,*
from sys.dm_os_memory_cache_counters
--为用户存储仓库和高速缓冲仓库类型的每个高速缓冲返回一份关于其健康情况的快照 select buckets_count --哈希表中的存储桶数
,buckets_in_use_count
,buckets_min_length
,buckets_max_length
,buckets_avg_length --如果这个数字很大,可能意味着所用的哈希算法不太理想
,buckets_avg_scan_hit_length --如果这个数字很大,可能意味着高速缓存并不是最优的
--详见http://technet.microsoft.com/zh-cn/library/ms178529.aspx
from sys.dm_os_memory_cache_hash_tables --为SQL Server实例中的每个活动的高速缓存返回一行 --A.从资源调控器池缓存释放未使用的缓存条目
--下面的示例说明如何清除专属于某个指定资源调控器资源池的缓存。
DBCC FREESYSTEMCACHE ('ALL');
--B.当不再使用条目后,将它们分别从其各自所属的缓存中释放
--下面的示例使用 MARK_IN_USE_FOR_REMOVAL 子句,在不再使用条目后将它们从所有当前缓存中释放。
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL; select clock_hand --表类型:外部和内部
,clock_status --时钟的状态:挂起和运行
,rounds_count --时钟表针已经转过的圈数
,removed_all_rounds_count --时钟表针在所有的周转中删除的条目数
from sys.dm_os_memory_cache_clock_hands --观察内存
dbcc memorystatus

SQL Server 学习系列之四(SQL 内幕)的更多相关文章

  1. 【SQL Server 学习系列】-- sql 随机生成中文名字

    原文:[SQL Server 学习系列]-- sql 随机生成中文名字 ,) )) -- 姓氏 ,) )) -- 名字 INSERT @fName VALUES ('赵'),('钱'),('孙'),( ...

  2. 【SQL Server 学习系列】-- SQL查询数据库表字段值不为空或Null的所有列

    ) set @TableName = 'Agency' -- 表名 declare @querySql nvarchar(max) set @querySql = 'select ' ) declar ...

  3. SQL Server 学习系列之六

    SQL Server 学习系列之六 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...

  4. SQL Server 学习系列之五

    SQL Server 学习系列之五 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...

  5. Sql Server来龙去脉系列之四 数据库和文件

        在讨论数据库之前我们先要明白一个问题:什么是数据库?     数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...

  6. 【SQL Server 学习系列】-- 清除SQL Server 2012连接过的服务器名称

    需要删除两个地方,删除前请注意备份! 1.  %AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin 2.  %A ...

  7. 【SQL Server 学习系列】-- 获取字符串中出现某字符的次数及字符某次出现的下标

    ) = '1_BB_CC_DD_AA_EE_YY_WW_HH_GG' --// 1. 获取下划线在字符串中出现的次数 SELECT LEN(@Str) - LEN(REPLACE(@Str, '_', ...

  8. 【SQL Server 学习系列】-- ConnectionTimeout、CommandTimeout和BulkCopyTimeout

    1. SqlConnection.ConnectionTimeout获取在尝试建立连接时终止尝试并生成错误之前所等待的时间.单位:秒默认值:15秒设置为0时,表示无限制 2. SqlCommand.C ...

  9. 【SQL Server 学习系列】-- 收缩数据库文件大小

    USE WebExam; GO ALTER DATABASE WebExam SET RECOVERY SIMPLE; GO -- 收缩文件到 1 MB. ); GO ALTER DATABASE W ...

随机推荐

  1. 测试 js 方法运行时间

    早期测速的时候是这样的,呵呵呵,一开始还挺爽的 function testFunctionTime(fn) { var start = new Date().getTime(); if (fn) fn ...

  2. Hearbeat 工作原理

    Hearbeat 原理 heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路, ...

  3. 函数进阶之结合tornado

    一.本篇博文内容 .协程函数 .面向过程编程 .递归和二分法 二.协程函数 协程函数:就是使用了yield表达式形式的生成器 首先函数的传参有几种? 三种: 1.实参形参传参 2.闭包的形式传参 3. ...

  4. 20145240 《Java程序设计》第四次实验报告

    20145240 <Java程序设计>第四次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.26 实验 ...

  5. MySQL实验1: 新建一个名为 library 的数据库,包含 book、reader 两张表,根据自己的理解安排表的内容并插入数据。

    数据表(table)简称表,它是数据库最重要的组成部分之一.数据库只是一个框架,表才是实质内容. 实验: 新建一个名为 library的数据库,包含 book.reader两张表,根据自己的理解安排表 ...

  6. vi编辑器快捷键使用详解

    文本编辑器是所有计算机系统中最常用的一种工具.UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! ...

  7. 为WebBrowser指定IE内核版本(MSIE 7.0)

    .Web Browser Control – Specifying the IE Version http://www.west-wind.com/weblog/posts/2011/May/21/W ...

  8. BZOJ3244/UOJ122 [Noi2013]树的计数

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  9. hdu 4737 A Bit Fun 尺取法

    A Bit Fun Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Proble ...

  10. 我的java mvc

    mint mvc 并不是我原创的.她的基础是廖雪峰老师的webwind mvc. webwind是廖老师模仿spring的一个 rest 风格的 mvc 框架,功能简单,但是mvc的核心功能基本具备了 ...