摘要: 当 Sql Server 收到任何一个指令,包括:查询、批处理、存储过程、触发器、预编译指令和动态SQL Server语句,要完成语法解析、语义分析,然后再进行"编译",生成能够运行的"执行计划"。在编译的过程中,SQL Server 会根据所涉及的对象的架构、统计信息,以及指令的具体内容,估算可能的执行计划,以及它们的成本,最后选择一个SQL Server认为成本最低的语句。执行计划生成之后,SQL Server 通常会把它们缓存到内存里,术语统称它们叫“Plane Cache”。以后同样的语句执行,SQL Server就可以使用同样的执行计划,而无须阅读全文
posted @ 2012-01-13 14:02 寻自己 阅读(117) 评论(0) 编辑
摘要: 这几天,一直想找一个替换整站即将要输出到客户端Html方法,但是找了好多,都没有找到,找到最大级别的,也就是在页面中处理;再者,这两天又看到了dudu写的关于 outputcache bug 的文章,真让我感觉到,不理解原理看来真的不行的,没文化太可怕了,所以,必须要再次认真的审视下HttpHandler 和 HttpModule 的作用及用法 啦一些基本的概念,这里就不说了,本来自己的博客就是为自己做备忘的,如果不行本文被你看到,有疑问的话,可以直接给我留言 :-)先说HttpHandler ,其实自定义HttpHandler 也是蛮简单的,但是这个的作用不是太大,自定义HttpHandle阅读全文
posted @ 2011-12-30 15:52 寻自己 阅读(236) 评论(0) 编辑
摘要: 阻塞的常见原因和解决办法:1. 由于语句运行时间太长而导致的阻塞,语句本身在正常运行中,只须等待某些系统资源解决办法:a. 语句本身有没有可优化的空间b. Sql Server 整体性能如何,是不是有资源瓶颈影响了语句执行速度,如 内存、硬盘 和 CPU 等2. 由于一个未按预期提交的事务导致的阻塞这一类阻塞的特征,就是问题连接早就进入了空闲状态(sysprocesses.status='sleeping'和sysprocesses.cms='awaiting command'),但是,如果检查 sysprocesses.open_tran,就会发现它不为0,以阅读全文
posted @ 2011-12-08 14:15 寻自己 阅读(225) 评论(1) 编辑
摘要: 利用PowerShell可以调用动态页面,然后再用 .bat 执行PowerShell 脚本,最后把 .bat 添加到服务器的任务计划里面。OK,所有操作都做好了,.Net 定时执行了,是不是呢,有木有呢。可能也有其他方法,比如用 WGet 等等,但是 推荐用 PowerShell ,为什么呢,因为 PowerShell 太强大呗PowerShell 语法(demo1.ps1):$date=Get-Date;$beginTime= 2*60 ;$endTime= 2*60+11;$minuteCount=$date.hour*60+$date.minute#if the time is rig阅读全文
posted @ 2011-12-01 18:02 寻自己 阅读(191) 评论(0) 编辑
摘要: -- 来源于网络-- 更详细的介结参考联机帮助文档xp_cmdshell --*执行DOS各种命令,结果以文本行返回。xp_fixeddrives --*查询各磁盘/分区可用空间xp_loginconfig --*报告SQL Server 实例在Windows 上运行时的登录安全配置xp_logininfo --*返回有关Windows 认证登录的信息。xp_msver --*返回有关Microsoft SQL Server 的版本信息xp_enumgroups --返回Windows用户组列表或在指定域中的全局组列表。xp_sendmail --将电子邮件发送给指定的收件人(后续版本将删除该阅读全文
posted @ 2011-11-09 14:27 寻自己 阅读(487) 评论(0) 编辑
摘要: 来源于网络: public static string GetMethodInfo() { string str = ""; //取得当前方法命名空间 str += "命名空间名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace + "\n"; //取得当前方法类全名 包括命名空间 str +=...阅读全文
posted @ 2011-11-03 14:31 寻自己 阅读(237) 评论(0) 编辑
摘要: Sys.SysProcesses 系统表是一个很重要的系统视图,主要用来定位与解决Sql Server的阻塞和死锁。MSDN:包含正在 SQL Server 实例上运行的进程的相关信息。这些进程可以是客户端进程或系统进程。视图中主要的字段:1. Spid:Sql Servr 会话ID2. Kpid:Windows 线程ID3. Blocked:正在阻塞求情的会话 ID。如果此列为 Null,则标识请求未被阻塞4. Waittype:当前连接的等待资源编号,标示是否等待资源,0 或 Null表示不需要等待任何资源5. Waittime:当前等待时间,单位为毫秒,0 表示没有等待6. DBID:当阅读全文
posted @ 2011-10-21 18:12 寻自己 阅读(207) 评论(0) 编辑
摘要: 最近一直在升级公司的手机站点,出了个触屏版专用的,做好后,就尝试通过 Agent 来判断相应的智能手机设备,然后跳转到新的手机站点经过不懈的努力,终于搜集了比较全的智能设备 的 Agent,然后又写了程序,直接上代码吧,希望能帮助到你 ///<summary> /// 根据 Agent 判断是否是智能手机 ///</summary> ///<returns></returns> public static bool CheckAgent() { bool flag = false; string agent = HttpConte...阅读全文
posted @ 2011-10-14 11:40 寻自己 阅读(518) 评论(1) 编辑
摘要: 学习资料,用做备忘1. 共享锁共享锁允许并发事务在封闭式并发控制下读取(Select) 资源。资源上存在共享锁(S锁)时,任何其他事物都不能修改数据。2. 更新锁在可重复读或可序列化事物中,一个修改需要先读取数据(获取资源页或行的共享锁),然后修改数据(此操作要求锁转换为排它锁)。如果两个事务获得了同一个资源上的共享模式锁,然后试图同时更新数据,则事务会把共享锁转换为排它锁(X锁)。由于两个事务都无法完成转换,因此发生死锁。为了避免这种潜在的死锁问题,SQL Server 使用更新锁(U)。一次只有一个事务可以获得资源的更新锁。事务真正修改数据时,将更新锁(U)转换为排它锁.3. 排它锁排它锁阅读全文
posted @ 2011-09-07 14:13 寻自己 阅读(239) 评论(2) 编辑
摘要: 直接让代码了,对比看看就了解了当然,这种情况比较适合提取字段较多的情况,要酌情而定性能较差的:WITH #temp AS ( Select column1,column2,column3,column4,column5,column6,column7,column8,column9,column10, row_number() over (Order by column100 desc) as RowNumber From tables1 Where ..... ) SELECT * FROM #temp WHERE RowNumber BETWEEN 1601 and 1620 ORDER 阅读全文
posted @ 2011-08-17 11:43 寻自己 阅读(172) 评论(0) 编辑
摘要: Sql Server 孤立用户 是我们经常遇到的事情,今天详细的梳理了下,希望能帮到你当把用户数据库从一台 Sql Server 使用备份和恢复的方式迁移到另一台服务器。数据库恢复以后,原先用户定义的一些其他数据库用户,就无法在新服务器上继续使用了。尤其对一些Sql Ser 帐号,这些就是孤立用户。Sql Server 的用户安全管理分两层,整个 Sql Server 服务器一层,每个数据库一层。一个用户,在每一层上都有帐号,在两个层面上都会分配不同的权利。在服务器层的帐号,交登录帐号(Login),可以设置它管理整个 Sql Server 服务器,开启跟踪,修改 Sql Server 安全配阅读全文
posted @ 2011-08-16 15:05 寻自己 阅读(309) 评论(0) 编辑
摘要: Sql Server 索引使用情况及优化的相关 Sql 语句,非常好的SQL语句,记录于此:--Begin Index(索引) 分析优化的相关 Sql -- 返回当前数据库所有碎片率大于25%的索引-- 运行本语句会扫描很多数据页面-- 避免在系统负载比较高时运行-- 避免在系统负载比较高时运行declare @dbid intselect @dbid = db_id()SELECT o.name as tablename,s.* FROM sys.dm_db_index_physical_stats (@dbid, NULL, NULL, NULL, NULL) s,sys.objects 阅读全文
posted @ 2011-08-08 10:21 寻自己 阅读(257) 评论(2) 编辑
摘要: 根据自身 Sql Server 的情况来自定义 事务隔离级别,将会更加的满足需求,或提升性能。例如,对于逻辑简单的 Sql Server,完全可以使用 read uncommitted 模式,来减少死锁,减少堵塞, 提升性能和响应。对于此种应用场景应该是蛮多的,但是却没有一个全局设置,你妹呀!这个功能真的很强大,但是不知道微软为什么把它的最大作用域定义为 当前链接,蛋疼,真的很蛋疼,没法全局设置,下面也尽可能详细的解释如何少设置,多舒服的使用吧查看 当前 Sql Server 事务隔离级别 的设置:DBCC Useroptions -> isolation level 这一项的 Valu阅读全文
posted @ 2011-07-29 18:47 寻自己 阅读(291) 评论(0) 编辑
摘要: Sql Server CPU 性能排查及优化的相关 Sql 语句,非常好的SQL语句,记录于此:--Begin Cpu 分析优化的相关 Sql --使用DMV来分析SQL Server启动以来累计使用CPU资源最多的语句。例如下面的语句就可以列出前50名。select c.last_execution_time,c.execution_count,c.total_logical_reads,c.total_logical_writes,c.total_elapsed_time,c.last_elapsed_time, q.[text]from (select top 50 qs.* from 阅读全文
posted @ 2011-07-27 11:44 寻自己 阅读(445) 评论(2) 编辑
摘要: Sql Server Cpu 100% 的情况并不太常见,一般引起 Sql Server 产生性能问题的,都是 阻塞、连接数、IO 磁盘等。所以,一般Sql Server 的使用率都是比较低的。但是,在有些情况下,还是会出现Cpu 100%的情况的。Sql Server 在做哪些操作的时候,会比较集中使用 CPU 资源呢?常见的主要如下:常见的原因:1. 编译和重编译编译是 Sql Server 为指令生成执行计划的过程。Sql Server 要分析指令要做的事情,分析它所要访问的表格结构,也就是生成执行计划的过程。这个过程主要是在做各种计算,所以CPU 使用比较集中的地方。执行计划生成后会被阅读全文
posted @ 2011-07-22 19:04 寻自己 阅读(695) 评论(0) 编辑
摘要: Sql Server 全文索引的性能一直都不是太好,今天听同事分享,发现了一个技巧,回去试了下,发现确实能明显的提升全文索引的性能,一般都能提升 2倍+原 SQL 语句:select * from Table1 where Contants(*,'test') 优化后的 SQL 语句:select * from Table1 where Contains((Content,Title),'test')两条 SQL 的不同之处,就是在 Contanis 后面的列名是否指定了,经过测试,明确指定 全文索引的列,确实能较大的提升 Sql Server 全文索引的性能阅读全文
posted @ 2011-07-19 13:34 寻自己 阅读(204) 评论(0) 编辑
摘要: 其实这个也是新瓶装旧酒的问题,前段时间,把这个做了,况且效果和性能都还不错,所以记录下,希望能帮助更多的人虽然 outputcache 很重要,但是这个功能真的不好用,很多时间不能满足需求,比如做一些自定义方面的缓存依赖,如:session、登录用户信息、用户cookie信息 等,更重要的是,想做片段缓存的话,就只能用 用户控件了,并且这是时,用户控件之间的传值就比较难了,所以,让人很不爽!真怀疑,asp.net 的开发工程师是不是就不用 asp.net,开发出来的产品,离实用还是有段距离的吧!!!!好了,还得自己动手,解决了 一些自定义方面的需求,支持 session、登录用户、cookie阅读全文
posted @ 2011-07-11 17:25 寻自己 阅读(201) 评论(0) 编辑
摘要: 1.sp_configure定义:显示或更改当前服务器的全局配置设置。主要的结果集:config_value,配置选项的配置值;run_value配置选项的运行值;如果两者不一致,一般是配置成功了,但是却没有生效备注:很有用。使用sp_configure可以显示或更改服务器级别的设置。若要更改数据库级别设置,请使用ALTERDATABASE。若要更改仅影响当前用户会话的设置,请使用SET语句。相关文章:SqlServer内存用不上的解决办法2.sp_help定义:报告有关数据库对象(sys.sysobjects兼容视图中列出的所有对象)、用户定义数据类型或某种数据类型的信息备注:返回的信息比较阅读全文
posted @ 2011-07-06 18:48 寻自己 阅读(115) 评论(0) 编辑
摘要: 在 .net 中过滤页面即将输出的所有html,从而改变一定html代码,还是很有需求的,具体的实现方法就是重写 页面的 Render 方法具体的代码如下: protected override void Render(HtmlTextWriter writer) { System.IO.StringWriter sw = new System.IO.StringWriter(); HtmlTextWriter htmlWriter = new HtmlTextWriter(sw); base.Render(htmlWriter); string html = sw.ToString(); h阅读全文
posted @ 2011-06-29 12:08 寻自己 阅读(186) 评论(0) 编辑
摘要: 对于IIS管理员来说,经常会碰到Web服务器CPU占用100%的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析w3wp.exe(IIS)占用CPU100%的一些原因和解决方案,希望能对你有所帮助w3wp.exe的解释:全名,IISApplicationPoolProcess。w3wp.exe是IIS工具的一部。w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行。这个进程用来分配大量的系统资源。 引起w3wp.exe(IIS)Cpu占用100%的常见原因如下:1.Web访问量大,从而服务器阅读全文
posted @ 2011-06-26 16:19 寻自己 阅读(1022) 评论(1) 编辑