Ëø³õ̽(sqlserver 2005)
HOLDLOCK ½«¹²ÏíËø±£Áôµ½ÊÂÎñÍê³É£¬¶ø²»ÊÇÔÚÏàÓ¦µÄ±í¡¢ÐлòÊý¾ÝÒ³²»ÔÙÐèҪʱ¾ÍÁ¢¼´ÊÍ·ÅËø¡£HOLDLOCK µÈͬÓÚ SERIALIZABLE¡£
NOLOCK ²»Òª·¢³ö¹²ÏíËø£¬²¢ÇÒ²»ÒªÌṩÅÅËüËø¡£µ±´ËÑ¡ÏîÉúЧʱ£¬¿ÉÄÜ»á¶ÁȡδÌá½»µÄÊÂÎñ»òÒ»×éÔÚ¶ÁÈ¡ÖÐ¼ä»Ø¹öµÄÒ³Ãæ¡£ÓпÉÄÜ·¢ÉúÔà¶Á¡£½öÓ¦ÓÃÓÚ SELECT Óï¾ä¡£
PAGLOCK ÔÚͨ³£Ê¹Óõ¥¸ö±íËøµÄµØ·½²ÉÓÃÒ³Ëø¡£
READCOMMITTED ÓÃÓëÔËÐÐÔÚÌá½»¶Á¸ôÀë¼¶±ðµÄÊÂÎñÏàͬµÄËøÓïÒåÖ´ÐÐɨÃ衣ĬÈÏÇé¿öÏ£¬SQL Server 2000 Ôڴ˸ôÀë¼¶±ðÉϲÙ×÷¡£ READPAST Ìø¹ýËø¶¨ÐС£´ËÑ¡Ïîµ¼ÖÂÊÂÎñÌø¹ýÓÉÆäËüÊÂÎñËø¶¨µÄÐУ¨ÕâЩÐÐÆ½³£»áÏÔʾÔÚ½á¹û¼¯ÄÚ£©£¬¶ø²»ÊÇ×èÈû¸ÃÊÂÎñ£¬Ê¹ÆäµÈ´ýÆäËüÊÂÎñÊÍ·ÅÔÚÕâЩÐÐÉϵÄËø¡£READPAST ËøÌáʾ½öÊÊÓÃÓÚÔËÐÐÔÚÌá½»¶Á¸ôÀë¼¶±ðµÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÐм¶ËøÖ®ºó¶ÁÈ¡¡£½öÊÊÓÃÓÚ SELECT Óï¾ä¡£ READUNCOMMITTED µÈͬÓÚ NOLOCK¡£
REPEATABLEREAD ÓÃÓëÔËÐÐÔÚ¿ÉÖØ¸´¶Á¸ôÀë¼¶±ðµÄÊÂÎñÏàͬµÄËøÓïÒåÖ´ÐÐɨÃè¡£
ROWLOCK ʹÓÃÐм¶Ëø£¬¶ø²»Ê¹ÓÃÁ£¶È¸ü´ÖµÄÒ³¼¶ËøºÍ±í¼¶Ëø¡£
SERIALIZABLE ÓÃÓëÔËÐÐÔÚ¿É´®ÐжÁ¸ôÀë¼¶±ðµÄÊÂÎñÏàͬµÄËøÓïÒåÖ´ÐÐɨÃè¡£µÈͬÓÚ HOLDLOCK¡£
TABLOCK ʹÓñíËø´úÌæÁ£¶È¸üϸµÄÐм¶Ëø»òÒ³¼¶Ëø¡£ÔÚÓï¾ä½áÊøÇ°£¬SQL Server Ò»Ö±³ÖÓиÃËø¡£µ«ÊÇ£¬Èç¹ûͬʱָ¶¨ HOLDLOCK£¬ÄÇôÔÚÊÂÎñ½áÊøÖ®Ç°£¬Ëø½«±»Ò»Ö±³ÖÓС£ TABLOCKX ʹÓñíµÄÅÅËüËø¡£¸ÃËø¿ÉÒÔ·ÀÖ¹ÆäËüÊÂÎñ¶ÁÈ¡»ò¸üÐÂ±í£¬²¢ÔÚÓï¾ä»òÊÂÎñ½áÊøÇ°Ò»Ö±³ÖÓС£
UPDLOCK ¶ÁÈ¡±íʱʹÓøüÐÂËø£¬¶ø²»Ê¹Óù²ÏíËø£¬²¢½«ËøÒ»Ö±±£Áôµ½Óï¾ä»òÊÂÎñµÄ½áÊø¡£UPDLOCK µÄÓŵãÊÇÔÊÐíÄú¶ÁÈ¡Êý¾Ý£¨²»×èÈûÆäËüÊÂÎñ£©²¢ÔÚÒÔºó¸üÐÂÊý¾Ý£¬Í¬Ê±È·±£×Ô´ÓÉϴζÁÈ¡Êý¾ÝºóÊý¾ÝûÓб»¸ü¸Ä¡£
XLOCK ʹÓÃÅÅËüËø²¢Ò»Ö±±£³Öµ½ÓÉÓï¾ä´¦ÀíµÄËùÓÐÊý¾ÝÉϵÄÊÂÎñ½áÊøÊ±¡£
¿ÉÒÔʹÓà PAGLOCK »ò TABLOCK Ö¸¶¨¸ÃËø£¬ÕâÖÖÇé¿öÏÂÅÅËüËøÊÊÓÃÓÚÊʵ±¼¶±ðµÄÁ£¶ÈËøµÄ¸ÅÊö
Ò». ΪʲôҪÒýÈëËø
¶à¸öÓû§Í¬Ê±¶ÔÊý¾Ý¿âµÄ²¢·¢²Ù×÷ʱ»á´øÀ´ÒÔÏÂÊý¾Ý²»Ò»ÖµÄÎÊÌâ: ¶ªÊ§¸üÐÂ
A,BÁ½¸öÓû§¶ÁͬһÊý¾Ý²¢½øÐÐÐÞ¸Ä,ÆäÖÐÒ»¸öÓû§µÄÐ޸Ľá¹ûÆÆ»µÁËÁíÒ»¸öÐ޸ĵĽá¹û,±ÈÈ綩Ʊϵͳ
Ôà¶Á
AÓû§ÐÞ¸ÄÁËÊý¾Ý,ËæºóBÓû§ÓÖ¶Á³ö¸ÃÊý¾Ý,µ«AÓû§ÒòΪijЩÔÒòÈ¡ÏûÁ˶ÔÊý¾ÝµÄÐÞ¸Ä,Êý¾Ý»Ö¸´ÔÖµ,´ËʱBµÃµ½µÄÊý¾Ý¾ÍÓëÊý¾Ý¿âÄÚµÄÊý¾Ý²úÉúÁ˲»Ò»ÖÂ
²»¿ÉÖØ¸´¶Á
AÓû§¶ÁÈ¡Êý¾Ý,ËæºóBÓû§¶Á³ö¸ÃÊý¾Ý²¢ÐÞ¸
Ïà¹ØÎĵµ£º
±¾ÆªÄÚÈÝϵÊôSQLServer¸ß¼¶±à³Ì£¬ÊÊÓÃÓÚÓûÌá¸ß×Ô¼ººÍ¸´Ï°»òÓ¦¸¶ÃæÊÔµÄÅóÓÑÔĶÁ£¬Í¬Ê±±¾ÈËѧϰ²»¾Ã£¬ÔÚ×ܽáºÍ¹éÄÉʱ´íÎóºÍ²»Ç¡µ±Ö®´¦ÔÚËùÄÑÃ⣬»¹ÇëÖ¸³öÆäÖБ¶ËÄß’£¬ÓèÒÔÍêÉÆ¡£
±í1:Users
USE [Wish]
GO
/****** ¶ÔÏó: Table [dbo].[Users] ½Å±¾ÈÕÆÚ: ......
»ñÈ¡sqlserverÊý¾Ý¿âÖÐËùÓп⡢±í¡¢×Ö¶ÎÃûµÄ·½·¨
2009Äê03ÔÂ12ÈÕ ÐÇÆÚËÄ ÏÂÎç 12:51
1.»ñÈ¡ËùÓÐÊý¾Ý¿âÃû:
SELECT Name from Master..SysDatabases ORDER BY Name
2.»ñÈ¡ËùÓбíÃû:
SELECT Name from DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':±íʾËùÓÐÓû§±í;
XType='S':±íʾËùÓÐϵͳ± ......
MySQL:
SELECT column from table
ORDER BY RAND()
LIMIT 1
PostgreSQL:
SELECT column from table
ORDER BY RANDOM()
LIMIT 1
Microsoft SQL Server:
SELECT TOP 1 column from table
ORDER BY NEWID()
IBM DB2
SELECT column, RAND() as IDX
from table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY
Thanks Ti ......
SQL Server 2005Êý¾Ý¿â±¸·ÝºÍ»Ö¸´ÌØÐÔ
SQL Server 2000ÖдæÔÚµÄÐí¶àµÄ±¸·ÝºÍ»Ö¸´ÌØÐÔ¶¼Í¬Ñù±£ÁôÔÚÁËSQL Server 2005ÖУ¬µ«ÊÇÓÐһЩеÄÌá¸ßͬÑùÖµµÃÎÒÃǹØ×¢¡£
¾µÏñ±¸·Ý
SQL Server 2005ÈÃÄã¿ÉÒÔ´´½¨¾µÏñ±¸·Ý¡£¾µÏñ±¸·ÝÔÊÐíÄãΪ±¸·ÝÎļþ´´½¨Á½¸ö»òÕßËĸöͬÑùµÄ¿½±´£¬ÒÔ·À±¸ÆäÖеÄijһ¸ö¼¯ºÏË𻵵ÄÇé¿ö¡£¾µÏñ¾ßÓ ......
SQLServerÖÐÓÐÁ½¸öÀ©Õ¹´æ´¢¹ý³ÌʵÏÖScanfºÍPrintf¹¦ÄÜ£¬Ç¡µ±µÄʹÓÃËüÃÇ¿ÉÒÔÔÚÌáÈ¡ºÍÆ´½Ó×Ö·û´®Ê±´ó·ù¶È¼ò»¯SQL´úÂë¡£
1¡¢xp_sscanf£¬ÓÃËü¿ÉÒÔ·Ö½â¸ñʽÏà¶Ô¹Ì¶¨µÄ×Ö·û´®£¬Õâ¶ÔÓÚÑá¾ëʹÓÃÒ»¶ÑsubstringºÍcharindexµÄÅóÓÑÀ´Ëµ²»´í¡£±ÈÈçǰ¼¸ÌìµÄÒ»¸öÌû×ÓÖÐÌá³öµÄÈçºÎ·Ö½âipµØÖ·£¬Ïà¶Ô¼òÁ·ÇÒͨÓõĴúÂëÓ¦¸ÃÊÇÏÂÃæÕâÑù
------- ......