C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 50 下一页

2013年11月28日

摘要: 一、多线程I/O 1、单线程采集100个页面 class Program { static int i = 6991275; static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); getTitle( 阅读全文
posted @ 2013-11-28 15:15 逆心 阅读(2019) 评论(0) 推荐(1) 编辑

2013年11月26日

摘要: 总结了一下VS的使用快捷键, 以下这些是必须转化为肌肉记忆的。1、Ctrl+Shift+V循环粘贴不同的内容 剪贴板最多可以保存20项内容,通过Ctrl+Shift+V可以循环粘贴出之前复制过的内容。2、Ctrl+W选中当前单词 鼠标放在一个单词上面,Ctrl+W能够帮助你选中一个单词。如图... 阅读全文
posted @ 2013-11-26 14:02 逆心 阅读(2810) 评论(0) 推荐(1) 编辑

2013年11月21日

摘要: 在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数。一、条件查询 1、传递单个参数 如根据Id查询: 调用的方法是:PersonModel p = mapper.QueryForObject("SelectPersonBy... 阅读全文
posted @ 2013-11-21 23:03 逆心 阅读(6885) 评论(7) 推荐(5) 编辑

2013年11月19日

摘要: 为了改进性能,分析重编译的起因很重要。往往,重编译可能并不需要,可以避免它以改进性能。了解导致重编译发生的不同条件有助于评估重编译的起因,并决定在重编译不必要时避免它的方法。 存储过程重编译在以下情况下发生:存储过程语句中引用的常规表、临时表或视图的架构变化。架构变化包括表的元数据或表上索引的变化;常规或临时表的列上的绑定(如默认/规则)变化。表索引或列上的统计的变化超过一定的阈值。存储过程编译时一个对象不存在,但是在执行期间创建(延迟对象解析);SET选项变化;执行计划老化并释放;对sp_recompile系统存储过程的显式调用。显式使用RECOMPILE子句; 可以在Profile... 阅读全文
posted @ 2013-11-19 16:40 逆心 阅读(5214) 评论(1) 推荐(4) 编辑

摘要: 存储过程通过明确地将查询的可变部分转换为参数来增进执行计划的可重用性。这使执行计划在查询以可变部分的相同或不同值重新提交时可以被重用。存储过程包含一组复杂的SQL语句,使生成存储过程的执行计划的代价有些高。因此,通常重用存储过程的执行计划来代替生成新计划是有利的。但是,有时候现有的计划可能不适用或者在重用期间可能不能提供最佳的处理策略。SQL Server重编译存储过程中的语句来生成一个新的执行计划,以解决这个问题。一、重编译的好处 存储过程的重编译既有好处又有缺点,有时候,为查询考虑一个新的处理策略而不是重用现有计划可能更经济。特别是表(或对应的统计)中数据的分布变化或者表中添加了新的... 阅读全文
posted @ 2013-11-19 15:35 逆心 阅读(3136) 评论(0) 推荐(0) 编辑

摘要: 计划缓冲的基本目的是通过重用执行计划来改进性能。因为,确认执行计划确实可重用很重要。因为即席查询的计划可重用性效率低下,所以一般建议尽可能依赖预定义工作负载技术。为了确保计划缓冲的高效实用,遵循以下建议。明确地参数化查询的可变部分;使用存储过程实现业务功能;使用sp_executesql避免存储过程维护;使用准备/执行模式避免重新发送查询字符串;避免即席查询;对动态查询使用sp_executesql代替EXECUTE;小心地参数化查询的可变部分;避免修改链接之间的环境设置;避免查询中对象的隐含解析;一、明确地参数化查询的可变部分 查询一般运行多次,每次运行的唯一不同是可变部分的不同值。它... 阅读全文
posted @ 2013-11-19 11:12 逆心 阅读(693) 评论(0) 推荐(0) 编辑

摘要: 查询计划hash和查询hash 在SQL Server 2008中引入的围绕执行计划和缓冲的新功能被称为查询计划hash和查询hash。这是使用针对查询或查询计划的算法来生成二进制hash值的二进制对象。 可以从sys.dm_exec_query_stats或sys.dm_exec_requests检索查询计划hash和查询hash。虽然这是确认查询及其计划的一种机制,但是hash值不是唯一的。不相似的查询可能得出相同的hash,所以不能将其作为备份主键。 分别创建两个查询如下:SELECT * FROM PersonHunderThousand INNER JOIN ProvinceO... 阅读全文
posted @ 2013-11-19 10:37 逆心 阅读(2062) 评论(0) 推荐(0) 编辑

2013年11月13日

摘要: 当查询被提交时,SQL Server检查过程缓冲中匹配的执行计划,如果没有找到,SQL Server执行查询编译和优化以生成新的执行计划。 如果执行计划存在于缓冲中,它在私有的执行上下文中重用,这节约了CPU的编译和优化周期。 具有不同过滤条件的相同查询提交到SQL Server时,如:SELECT * FROM Person WHERE Id = 1 当这个查询被提交时,优化器创建一个执行计划并将其存储在过程缓冲中以被将来重用。如果这个查询使用不同的过滤条件,如:WHERE Id = 2重新提交,重用前面提供的过滤条件值所用的现有执行计划是有利的。但是为一个过滤条件值创建的执行计划... 阅读全文
posted @ 2013-11-13 23:19 逆心 阅读(3054) 评论(0) 推荐(3) 编辑

摘要: 一、执行计划缓冲 优化器生成的执行计划保存在SQL Server内存池中的一个特别部分,被称为计划缓冲或过程缓冲。过程缓冲是SQL Server缓存的一部分。在缓冲中保存计划可使SQL Server避免在重新提交相同的查询时再次通过整个查询优化过程运行。SQL Server支持不同的技术,如:计划缓冲老化,计划缓冲类型来增加缓存的计划的可重用性。它还保存两个被称为hash和查询计划hash的二进制值。二、执行计划组件 优化器生成的执行计划包含两个组件:查询计划:这代表指定执行查询所需要的物理操作命令;执行上下文:这维护给定用户上下文中查询的可变部分; 1、查询计划 查询计划是一个可再入... 阅读全文
posted @ 2013-11-13 08:38 逆心 阅读(749) 评论(0) 推荐(0) 编辑

2013年11月11日

摘要: SQL Server使用许多技术来优化资源消耗:基于语法的查询优化;无用计划匹配以避免对简单查询的深度优化;根据当前分布统计的索引和连接策略;多阶段的查询优化以控制优化开销;执行计划缓冲以避免重新生成执行计划; 以上技术按以下顺序执行:解析器;代数化器;查询优化器;执行计划生成,缓冲和hash计划生成;查询执行; 其执行顺序如下: 一、解析器(parser) 当查询被提交时,SQL Server将它传递给关系引擎中的解析器。 关系引擎-负责解析、名称和类型解析、优化和按照查询执行计划执行查询并从存储引擎请求数据; 存储引擎-负责数据访问、修改、缓冲; 解析器检查进入的查询,验... 阅读全文
posted @ 2013-11-11 15:47 逆心 阅读(1999) 评论(0) 推荐(0) 编辑

上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 50 下一页