2010年8月25日

驾照和保险

前天过了大路,快拿到本了。简单记录一下这三个月学车的经历。报的是远达驾校的仇师傅团队,周末班,包接送,不算模考和“保险”一共4100。仇师傅是团队的老板,脾气大,胆子也大,学车的第一天就让我们这些新学员开车回去,惊险刺激。前面一个半月每周六早5点练到11点,内容就是倒桩移库,师傅看差不多,就让正式报班考交规。交规不难,按照发的题库准备一下,搜点网上的题做做,考了95。不过交规考试很正规,进门拍照,机考,每台电脑都有摄像头全程监控,打小抄基本不可能。然后准备了两周,就考倒桩,场地也算正规,每个场地有6对红外检测仪,6个杆子上还有震动检测仪。

练倒桩时有位学员闲聊时提到仇师傅有门路可以保险,每门100块可以大大提高通过的机会。考倒桩前黄师傅问我们要不要交“保险”,说交了保险,考试的时候有人会“叫”,提醒学员调整位置, 避免压线撞杆。 我纠结了下,没保,结果名不虚传,进入考区后到我考试开始的三个学员,考官都不停的出声指点:比如该如何调整位置、太靠左要打90度啊、太快了要慢点啊等等。到了我时考官却背对着我,根本没往这边看,对比强烈啊。接下来的小路和大路考前黄师傅照例也会讲一通保的好处和不保的风险,不过我并不为所动。

其实并不是舍不得300块钱,只是我有自己的想法:现在社会上尤其在网络上有种“愤世嫉俗”的风气,比如针对特权贪腐,觉得在权贵面前,自己没有得到公平;而到了现实中,遇到了身边的贪腐现象,又趋之若鹜,这是矛盾的:一方面痛恨对自己的不公,另一方面又维护所谓的潜规则,并力图创造对别人的不公。我这次只是想在这点小事上贯彻自己的理念:公平。

我想证明:其实没必要屈服于所谓的潜规则,不交钱还不是一样过,倒桩和小路有客观精密的仪器,而大路考不交钱考官也一样很nice。甚至我开始忘记系保险带考官都提示:“准备工作要做好,做好了么”,掉头也不是100%完美,靠边停车后灯也忘记关,考官还是给过了。这说明这个世界并没有那么浑浊,但如果你心里相信这个世界是浑浊的,相信自己只不过是顺其流和扬其波,那难免失错失了它真正和美丽的本色。我们要一个better world,但这不能寄希望与尧舜禹汤,每个小人物都要尽力才行。

posted @ 2010-08-25 21:29 薛定谔的旺财(刘杨) 阅读(147) 评论(1) 编辑

SQL Server 中的死锁

死锁(deadlock)指进程之间互相永久阻塞的状态,SQL可以检测到死锁,并选择终止其中一个事务以干预死锁状态。两个进程发生死锁的典型例子是:进程T1中获取锁A,申请锁B;进程T2中获取锁B,申请锁A,我们下面动手来演示一下这种情况:

1. 创建一个Database,名为InvDB。

2. 执行下面脚本创建person表并填充两条数据:

image

3. 在SQL Server Management Studio的两个窗口中同时执行下面的查询:

image image

这段代码在默认的READ COMMITTED隔离级别下运行,两个进程分别在获取一个排它锁的情况下,申请对方的共享锁从而造成死锁。

可见一个进程可以正常更新并显示结果,而另一个进程已经被回滚:

(1 row(s) affected)
Msg 1205, Level 13, State 45, Line 8
Transaction (Process ID 55) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

4. 启动 SQL Server Profiler,选择下面4种Events:

image

再执行一次上面的死锁实验,可以看到如下所示的死锁图:

image

 

非常有趣的一点是:第二次执行上述语句不会发生死锁!这是因为此时两个进程中,SQL Server会智能的识别出update语句是不需要做的,所以都不会去获取排它锁,当然也就不会死锁了。SQL Server 2008 的查询优化器还真是非常强大!

posted @ 2010-08-25 17:59 薛定谔的旺财(刘杨) 阅读(1681) 评论(0) 编辑