关于SQL Sserver ROWLOCK锁的一个误解

关于SQL Server锁类型,我就不列举了,大家可以通过MSDN来了解。
http://msdn.microsoft.com/zh-cn/library/ms187373.aspx

今天我就来讲一个十分有意思的事情,是在我进行并发测试时遇到的。

众所周知,在一段涉及卖票逻辑的程序中,在卖票操作时先要查询下是否有余票,有的话这要对票加锁,然后扣票和在用户记录表添加买票记录。
Two table : [Ticket] [table_user]

Begin Transaction
select top 1* from [Ticket] with (XLOCK,ROWLOCK) where Status=1;
update [Ticket] set [Status]=2,…where…
update [table_user] set …….
End Transaction

模拟并发请求时,会发现这段代码实际执行时总是表现为表锁的现象。那么是因为在select的时候where条件没有使用primary key的缘故吗?
select * from [Ticket] with (XLOCK,ROWLOCK) where id in (select top 1 id from [Ticket] where Status=1);
仍旧不行。
Why? Why? Why? …
通过观察表现每次请求时,数据库执行这段SQL总是表现为表锁,而且查询出来的数据都是同样的一行。仔细分析,原来问题出在SQL语句上:
SQL SEVER在使用行级排他锁select时会锁住了一条记录,而且此时其他的请求仍旧能够查询到此条记录,但是会在这里阻塞。所以在模拟并发的时候,多个进程都是查询到同一条记录上,于是在测试中总是表现出表被被锁住现象。
最后我的解决方法是在select时加入一定的随机规则,尽量让多个进程不要查询在一条记录上。

迁移WordPress到新服务器

 

  1. 备份:通过FTP备份全部的文件。导出数据库sql文件。
  2. 迁移:把备份的文件解压到新的web服务器根目录下;导入sql文件到新的mysql数据库中。修改数据库配置文件wp-config.php,将用户名、密码等更改为新MySQL服务器的信息。

    更改博客的安装地址和博客地址,在数据库中找到wp-options表,找到第一条记录siteurl以及home,这两条记录的值改成你的新域名。只有完成这一步后,才可以顺利进入后台,否则输入密码,会自动跳转到原来的老域名。

    UPDATE wp_options SET option_value = replace( option_value, ‘http://老域名’, ‘https://taobig.org’) WHERE option_name = ‘home’ OR option_name =’siteurl’ ;

    修改文章内部所有的用到老链接的域名字符串。此时得要将文章内链的旧域名修改为新域名。

    UPDATE wp_posts SET post_content = replace(post_content, ‘http://老域名’, ‘https://taobig.org’);

    UPDATE wp_posts SET guid = replace( guid, ‘http://老域名’, ‘https://taobig.org’ );

限时获取windows 8 优惠码

今天是有一件大事件。发行了13的windows xp正式退役。微软与中国的部分互联网企业合作以极低的价格提供windows 8的序列号,鼓励用户使用windows 8操作系统。

从2014年4月8日零时持续4月10日晚11时59分,所有用户可以在360官网会员专区(http://vip.360.cn/huodong/win8.html)、腾讯电脑管家论坛(http://guanjia.qq.com/act/brand/xp/)获取Win8在线发行软件版本的优惠代码,使用代码后,在微软商场(http://www.microsoftstore.com)购买只需花费299元就可以升级到Win8。而之前单独在微软商场购买则需要888RMB。
获取优惠码后,请在4月8日-4月10日(00:00至24:00)内完成支付,逾期失效
支付完成后,您可以在1年内下载Win8系统安装包,并激活。

Nokia Tune的来历

诺基亚那首经典的手机铃音,你知道它的来源吗?
按照诺基亚中文博客的解释

西班牙著名作曲家,被很多人称为近代吉他乐之父的弗朗西斯科•塔雷加-伊克西亚(Francisco Tarrega-Eixea,1852-1909)谱写了《Gran Vals》(大圆舞曲)。1993年(来源维基百科,诺基亚中文博客没有直接给出具体时间)时任诺基亚销售副总裁 Anssi Vanjoki 带着这首曲子找到通信副总裁 Lauri Kivinen,两人从 14 分钟长的原曲中选出小段旋律,将其命名为《Grande Valse》。

这就是后来大家耳熟能详的Nokia Tune。
来源: http://blog.nokia.com.cn/2010/06/07/nuojiyalingshengdeyoulai/

[优酷视频]《cargo》–澳洲短片电影节佳作!

一个主题就是父爱的短片,很是催人泪下。

优酷地址:http://v.youku.com/v_show/id_XNTQwNzY2NTg4.html

通过评论可以发现一些你不曾注意的一些细节。

一个网友评论:

为了不伤害自己的孩子,他父亲在转变之前绑住了自己的双手,尽管不知道孩子能不能得救,但为了那一点希望,这位坚强的父亲将孩子绑在背上,捡起地上的腐肉用树干挂在前方,好让变为行尸后的自己能够带着孩子继续前进。直到最后看到有人在屋顶上正用枪瞄准的时候他立刻反应起来把气球挡在自己头上好让他瞄准自己脑袋而不伤到自己小孩……

windows7恢复被误删的便笺

话说电脑这个东西借给普通用户用是往往会带来很大的麻烦,比如这个系统便笺[biàn jiān],被别人删了几次了。每次都很郁闷,但是因为种种原因也没有想着去恢复。这一次,是因为之前花了很大心血,做了不少的小摘抄,还没来得及整理成文档,结果被人一次性的给删除了。所以google一下看有什么恢复的方法。

其实方法很简单,因为windows 7系统自带有历史版本记录的功能。找到

C:\Users\taobig\AppData\Roaming\Microsoft\Sticky Notes 文件夹

(注:taobig为当前登录用户的用户名)

在文件夹中空白处(或者对这个文件夹)鼠标右键——“属性”——“以前的版本”

稍等片刻,现在系统正在帮你检索以前的版本,检索完后就会给你列出来。如下图

StickyNotes

参考来源:http://piscesfly.itpub.net/post/2874/498375

但是我发现我本机(X64 Windows 7)的Sticky Notes记录的目录与作者说的不一样)

 

附带:

微软给的教材,使用注册表来恢复误删的 Windows 7 便签提示

找到以下注册表子项:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\StickyNotes

双击 PROMPT_ON_DELETE 注册表项。 数据框中,键入 00000001,然后单击确定

http://support.microsoft.com/kb/981026/zh-cn