摘要: 使用C#进行开发时如果碰到需要使用CultureInfo而又没有显示指定时(例如:DateTime的ToString,string.Format等)会发生什么呢?Console程序:程序默认会从Thread.CurrentThread.CurrentCulture获取CultureInfo,而该Cu... 阅读全文
posted @ 2015-12-16 15:57 RoyLiu 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 在一个CS结构的项目里使用SQLServer时碰到一个有意思的现象,以下是从日志中摘出来的用户操作:用户A的操作会引发程序在事务中使用Local临时表,例如:1 BEGIN TRAN2 3 SELECT * INTO #temp FROM DB1.dbo.Table14 5 --do somethi... 阅读全文
posted @ 2015-12-16 15:17 RoyLiu 阅读(3143) 评论(0) 推荐(4) 编辑
摘要: 场景:winform的程序中,有一个画面上放了一个Button,点击这个Button会调用.Net控件SaveFileDialog的ShowDialog方法。场景很简单,但是碰到了这样一个有趣的问题:在机器很慢的情况下,连续快速两次点击上述Button,会导致栈溢出异常(StackOverflowE... 阅读全文
posted @ 2015-09-29 17:35 RoyLiu 阅读(1777) 评论(6) 推荐(1) 编辑
摘要: 1. Query:SELECT ec.client_net_address , es.[program_name] , es.[host_name] , es.login_name , COUNT(ec.session_id) AS [c... 阅读全文
posted @ 2015-05-13 16:23 RoyLiu 阅读(757) 评论(0) 推荐(0) 编辑
摘要: .NET项目中有这样一个场景:使用反射处理所有业务调用,在反射调用点使用try-catch集中处理异常,并将异常信息记录到日志。其中日志记录是异步的。问题:记录到日志中的异常的StackTrace和有时候和Debug时抛出的异常的StackTrace不一样。原因:由于记录日志是异步的,如果记录日志发... 阅读全文
posted @ 2014-10-28 12:03 RoyLiu 阅读(1620) 评论(3) 推荐(0) 编辑
摘要: 获取指定表的所有约束:SELECT OBJECT_NAME(so.id) AS tableName , OBJECT_NAME(sc.constid)FROM sysconstraints SC INNER JOIN sysobjects SO ON sc.id ... 阅读全文
posted @ 2013-02-05 12:28 RoyLiu 阅读(621) 评论(0) 推荐(0) 编辑
摘要: SQLServer表变量和临时表创建时都存储在内存中,直到他们的size达到指定大小后才会被保存到disk。他们的区别如下(补充中):1. 临时表有统计,表变量没有统计;2. 临时表有可能引起recompile(多数场合是因为Schema Changed或者Statistics Changed),表... 阅读全文
posted @ 2012-10-23 11:46 RoyLiu 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 使用复杂的SQL脚本(包含多个子查询,连接,复杂的查询条件等)做查询时,有时候会碰到SQL性能问题。使用Set Statistics Profile on打开查询计划查看SQLServer优化器是否选择了适当的连接方式来做join,例如:如果在数据量很大的两个结果集间做连接使用了Nest Loop方式的连接则视为不适当。如果存在上述问题,查看查询计划中连接操作所连接的两个表的EstimateRows是否和实际的结果集行数差距很大。如果存在上述问题,使用sp_helpstats N'your_table_name', 'ALL'和DBCC SHOW_STATIST 阅读全文
posted @ 2012-10-23 11:12 RoyLiu 阅读(230) 评论(0) 推荐(0) 编辑