±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcnblogs£¬±¾ÎÄÖ÷Òª½éÉÜÁËsqlÓï¾äÖеģ¬insert²åÈ룬ÐÞ¸Äɾ³ýÓï¾ä£¬union¹Ø¼ü×ÖµÈÏà¹ØÓÅ»¯µÄ֪ʶ¡£ |
|
¿ªÃżûɽ£¬ÎÊÌâËùÔÚ
sqlÓï¾äÐÔÄÜ´ï²»µ½ÄãµÄÒªÇó£¬Ö´ÐÐЧÂÊÈÃÄãÈÌÎÞ¿ÉÈÌ£¬Ò»°ã»áʱÏÂÃæ¼¸ÖÖÇé¿ö¡£
ÍøËÙ²»¸øÁ¦£¬²»Îȶ¨¡£
·þÎñÆ÷ÄÚ´æ²»¹»£¬»òÕßSQL ±»·ÖÅäµÄÄÚ´æ²»¹»¡£
sqlÓï¾äÉè¼Æ²»ºÏÀí
ûÓÐÏàÓ¦µÄË÷Òý£¬Ë÷Òý²»ºÏÀí
ûÓÐÓÐЧµÄË÷ÒýÊÓͼ
±íÊý¾Ý¹ý´óûÓÐÓÐЧµÄ·ÖÇøÉè¼Æ
Êý¾Ý¿âÉè¼ÆÌ«2£¬´æÔÚ´óÁ¿µÄÊý¾ÝÈßÓà
Ë÷ÒýÁÐÉÏȱÉÙÏàÓ¦µÄͳ¼ÆÐÅÏ¢£¬»òÕßͳ¼ÆÐÅÏ¢¹ýÆÚ
....
ÄÇôÎÒÃÇÈçºÎ¸øÕÒ³öÀ´µ¼ÖÂÐÔÄÜÂýµÄµÄÔÒòÄØ£¿
Ê×ÏÈÄãÒªÖªµÀÊÇ·ñ¸úsqlÓï¾äÓйأ¬È·±£²»ÊÇ»úÆ÷¿ª²»¿ª»ú£¬·þÎñÆ÷Ó²¼þÅäÖÃÌ«²î£¬Ã»ÍøÄã˵p°¡
½Ó×ÅÄãʹÓÃÎÒÉÏһƪÎÄÕÂÖÐÌáµ½µÄ2¿ÂÄÏsqlÐÔÄܼì²â¹¤¾ß--sql server profiler£¬·ÖÎö³ösqlÂýµÄÏà¹ØÓï¾ä£¬¾ÍÊÇÖ´ÐÐʱ¼ä¹ý³¤£¬Õ¼ÓÃϵͳ×ÊÔ´£¬cpu¹ý¶àµÄ
È»ºóÊÇÕâÆªÎÄÕÂҪ˵µÄ£¬sqlÓÅ»¯·½·¨¸ú¼¼ÇÉ£¬±ÜÃâһЩ²»ºÏÀíµÄsqlÓï¾ä£¬È¡ÔÝÓÅsql
ÔÙÈ»ºóÅжÏÊÇ·ñʹÓÃÀ²£¬ºÏÀíµÄͳ¼ÆÐÅÏ¢¡£sql serverÖпÉÒÔ×Ô¶¯Í³¼Æ±íÖеÄÊý¾Ý·Ö²¼ÐÅÏ¢£¬¶¨Ê±¸ù¾ÝÊý¾ÝÇé¿ö£¬¸üÐÂͳ¼ÆÐÅÏ¢£¬ÊǺÜÓбØÒªµÄ
È·ÈϱíÖÐʹÓÃÀ²ºÏÀíµÄË÷Òý£¬Õâ¸öË÷ÒýÎÒÇ°Ãæ²©¿ÍÖÐÒ²ÓÐÌá¹ý£¬²»¹ýÄÇÆª²©¿ÍÖ®ºó£¬»¹Òª½øÒ»²½¶ÔË÷ÒýдƪÎÄÕÂ
Êý¾ÝÌ«¶àµÄ±í£¬Òª·ÖÇø£¬ËõС²éÕÒ·¶Î§
·ÖÎö±È½ÏÖ´ÐÐʱ¼ä¼Æ»®¶ÁÈ¡Çé¿ö
select * from
dbo.Product |
Ö´ÐÐÉÏÃæÓï¾äÒ»°ãÇé¿öÏÂÖ»¸øÄã·µ»Ø½á¹ûºÍÖ´ÐÐÐÐÊý£¬ÄÇôÄãÔõô·ÖÎöÄØ£¬Ôõô֪µÀÄãÓÅ»¯Ö®ºó¸úûÓÐÓÅ»¯µÄÇø±ðÄØ¡£
ÏÂÃæ¸øÄã˵¼¸ÖÖ·½·¨¡£
1.²é¿´Ö´ÐÐʱ¼äºÍcpuÕ¼ÓÃʱ¼ä
set statistics
time on
select * from dbo.Product
set statistics time off |
´ò¿ªÄã²éѯ֮ºóµÄÏûÏ¢ÀïÃæ¾ÍÄÜ¿´µ½À²¡£

2.²é¿´²éѯ¶ÔI/0µÄ²Ù×÷Çé¿ö
set statistics
io on
select * from dbo.Product
set statistics io off |
Ö´ÐÐÖ®ºó

ɨÃè¼ÆÊý£ºË÷Òý»ò±íɨÃè´ÎÊý
Âß¼¶ÁÈ¡£ºÊý¾Ý»º´æÖжÁÈ¡µÄÒ³Êý
ÎïÀí¶ÁÈ¡£º´Ó´ÅÅÌÖжÁÈ¡µÄÒ³Êý
Ô¤¶Á£º²éѯ¹ý³ÌÖУ¬´Ó´ÅÅÌ·ÅÈ뻺´æµÄÒ³Êý
lobÂß¼¶ÁÈ¡£º´ÓÊý¾Ý»º´æÖжÁÈ¡£¬image£¬text£¬ntext»ò´óÐÍÊý¾ÝµÄÒ³Êý
lobÎïÀí¶ÁÈ¡£º´Ó´ÅÅÌÖжÁÈ¡£¬image£¬text£¬ntext»ò´óÐÍÊý¾ÝµÄÒ³Êý
lobÔ¤¶Á£º²éѯ¹ý³ÌÖУ¬´Ó´ÅÅÌ·ÅÈ뻺´æµÄimage£¬text£¬ntext»ò´óÐÍÊý¾ÝµÄÒ³Êý
Èç¹ûÎïÀí¶ÁÈ¡´ÎÊýºÍÔ¤¶Á´Î˵±È½Ï¶à£¬¿ÉÒÔʹÓÃË÷Òý½øÐÐÓÅ»¯¡£
Èç¹ûÄã²»ÏëʹÓÃsqlÓï¾äÃüÁîÀ´²é¿´ÕâЩÄÚÈÝ£¬·½·¨Ò²ÊÇÓе쬏ç½ÌÄã¸ü¼òµ¥µÄ¡£
²éѯ--->>²éѯѡÏî--->>¸ß¼¶

±»ºìȦÌ×ÉϵÄ2¸öÑ¡ÉÏ£¬È¥µôsqlÓï¾äÖеÄset statistics io/time on/off
ÊÔÊÔЧ¹û¡£Å¶Ò²£¬Äã³É¹¦À²¡£¡£
3.²é¿´Ö´Ðмƻ®£¬Ö´Ðмƻ®Ïê½â
Ñ¡ÖвéѯÓï¾ä£¬µã»÷ È»ºó¿´ÏûÏ¢ÀïÃæ£¬»á³öÏÖÏÂÃæµÄͼÀý

Ê×ÏÈÎÒÕâ¸öÀý×ÓµÄÓï¾äÌ«¹ý¼òµ¥£¬ÄãÕû¸ö¸´Ôӵ쬰üº°¡¡£
·ÖÎö£ºÊó±ê·ÅÔÚͼ±êÉÏ»áÏÔʾ´Ë²½ÖèÖ´ÐеÄÏêϸÄÚÈÝ£¬Ã¿¸ö±íÏÂÃæ¶¼ÏÔʾһ¸ö¿ªÏú°Ù·Ö±È£¬·ÖÎöÕ¾°Ù·Ö±È¶àµÄµÄÒ»¿é£¬¿ÉÒÔ¸ù¾ÝÖØÐÂÉè¼ÆÊý¾Ý½á¹¹£¬»òÕâÖØÐ´sqlÓï¾ä£¬À´¶Ô´Ë½øÐÐÓÅ»¯¡£Èç¹û´æÔÚɨÃè±í£¬»òÕßɨÃè¾Û¼¯Ë÷Òý£¬Õâ±íʾÔÚµ±Ç°²éѯÖÐÄãµÄË÷ÒýÊDz»ºÏÊʵģ¬ÊÇûÓÐÆðµ½×÷Óõģ¬ÄÇôÄã¾ÍÒªÐÞ¸ÄÍêÉÆÓÅ»¯ÄãµÄË÷Òý¡£
select²éѯÒÕÊõ
1.±£Ö¤²»²éѯ¶àÓàµÄÁÐÓëÐС£
¾¡Á¿±ÜÃâselect * µÄ´æÔÚ£¬Ê¹ÓþßÌåµÄÁдúÌæ*£¬±ÜÃâ¶àÓàµÄÁÐ
ʹÓÃwhereÏÞ¶¨¾ßÌåÒª²éѯµÄÊý¾Ý£¬±ÜÃâ¶àÓàµÄÐÐ
ʹÓÃtop£¬distinct¹Ø¼ü×Ö¼õÉÙ¶àÓàÖØ¸´µÄÐÐ
2.É÷ÓÃdistinct¹Ø¼ü×Ö
distinctÔÚ²éѯһ¸ö×ֶλòÕߺÜÉÙ×ֶεÄÇé¿öÏÂʹÓ㬻á±ÜÃâÖØ¸´Êý¾ÝµÄ³öÏÖ£¬¸ø²éѯ´øÀ´ÓÅ»¯Ð§¹û¡£
µ«ÊDzéѯ×ֶκܶàµÄÇé¿öÏÂʹÓã¬Ôò»á´ó´ó½µµÍ²éѯЧÂÊ¡£

ÓÉÕâ¸öͼ£¬·ÖÎöÏÂ:
ºÜÃ÷ÏÔ´ødistinctµÄÓï¾äcpuʱ¼äºÍÕ¼ÓÃʱ¼ä¶¼¸ßÓÚ²»´ødistinctµÄÓï¾ä¡£ÔÒòÊǵ±²éѯºÜ¶à×Ö¶Îʱ£¬Èç¹ûʹÓÃdistinct£¬Êý¾Ý¿âÒýÇæ¾Í»á¶ÔÊý¾Ý½øÐбȽϣ¬¹ýÂ˵ôÖØ¸´Êý¾Ý£¬È»¶øÕâ¸ö±È½Ï£¬¹ýÂ˵Ĺý³ÌÔò»áºÁ²»¿ÍÆøµÄÕ¼ÓÃϵͳ×ÊÔ´£¬cpuʱ¼ä¡£
3.É÷ÓÃunion¹Ø¼ü×Ö
´Ë¹Ø¼ü×ÖÖ÷Òª¹¦ÄÜÊǰѸ÷¸ö²éѯÓï¾äµÄ½á¹û¼¯ºÏ²¢µ½Ò»¸ö½á¹û¼¯Öзµ»Ø¸øÄã¡£Ó÷¨
<select Óï¾ä1>
union
<select Óï¾ä2>
union
<select Óï¾ä3>
... |
Âú×ãunionµÄÓï¾ä±ØÐëÂú×㣺1.ÁÐÊýÏàͬ¡£ 2.¶ÔÓ¦ÁÐÊýµÄÊý¾ÝÀàÐÍÒª±£³Ö¼æÈÝ¡£
Ö´Ðйý³Ì£º
ÒÀ´ÎÖ´ÐÐselectÓï¾ä-->>ºÏ²¢½á¹û¼¯--->>¶Ô½á¹û¼¯½øÐÐÅÅÐò£¬¹ýÂËÖØ¸´¼Ç¼¡£
select * from
(( orde o left join orderproduct op on o.orderNum=op.orderNum
)
inner join product p on op.proNum=p.productnum)
where p.id<10000
union
select * from
(( orde o left join orderproduct op on o.orderNum=op.orderNum
)
inner join product p on op.proNum=p.productnum)
where p.id<20000 and p.id>=10000
union
select * from
(( orde o left join orderproduct op on o.orderNum=op.orderNum
)
inner join product p on op.proNum=p.productnum)
where p.id>20000 ---ÕâÀï¿ÉÒÔдp.id>100 ½á¹ûÒ»Ñù£¬ÒòΪËûɸѡ¹ýÀ²
-------¶Ô±ÈÉÏÏÂÁ½¸öÓï¾ä--------
select * from
(( orde o left join orderproduct op on o.orderNum=op.orderNum
)
inner join product p on op.proNum=p.productnum) |

Óɴ˿ɼûЧÂÊȷʵµÍ£¬ËùÒÔ²»ÊÇÔÚ±ØÒªÇé¿öϱÜÃâʹÓá£ÆäʵÓÐËûÖ´ÐеĵÚÈý²¿£º¶Ô½á¹û¼¯½øÐÐÅÅÐò£¬¹ýÂËÖØ¸´¼Ç¼¡£¾ÍÄÜ¿´³ö²»ÊÇʲôºÃÄñ¡£È»¶ø²»¶Ô½á¹û¼¯ÅÅÐò¹ýÂË£¬ÏÔȻЧÂÊÊDZÈunion¸ßµÄ£¬ÄÇô²»ÅÅÐò¹ýÂ˵Ĺؼü×ÖÓÐÂ𣿴ð£¬ÓУ¬ËûÊÇunion
all£¬Ê¹ÓÃunion allÄܶÔunion½øÐÐÒ»¶¨µÄÓÅ»¯¡£¡£
4.ÅжϱíÖÐÊÇ·ñ´æÔÚÊý¾Ý
select count(*)
from product
select top(1) id from product |
ºÜÏÔÈ»ÏÂÃæÍêʤ
5.Á¬½Ó²éѯµÄÓÅ»¯
Ê×ÏÈÄãҪŪÃ÷°×ÄãÏëÒªµÄÊý¾ÝÊÇʲôÑù×ӵģ¬È»ºóÔÙ×ö³ö¾ö¶¨Ê¹ÓÃÄÄÒ»ÖÖÁ¬½Ó£¬ÕâºÜÖØÒª¡£
¸÷ÖÖÁ¬½ÓµÄȡֵ´óСΪ£º
ÄÚÁ¬½Ó½á¹û¼¯´óСȡ¾öÓÚ×óÓÒ±íÂú×ãÌõ¼þµÄÊýÁ¿
×óÁ¬½ÓÈ¡¾öÓë×ó±í´óС£¬ÓÒÏà·´¡£
ÍêÈ«Á¬½ÓºÍ½»²æÁ¬½ÓÈ¡¾öÓë×óÓÒÁ½¸ö±íµÄÊý¾Ý×ÜÊýÁ¿
select * from
( (select * from orde where OrderId>10000)
o left join orderproduct op on o.orderNum=op.orderNum
)
select * from
( orde o left join orderproduct op on o.orderNum=op.orderNum
)
where o.OrderId>10000 |
Óɴ˿ɼû¼õÉÙÁ¬½Ó±íµÄÊý¾ÝÊýÁ¿¿ÉÒÔÌá¸ßЧÂÊ¡£
insert²åÈëÓÅ»¯
--´´½¨ÁÙʱ±í
create table #tb1
(
id int,
name nvarchar(30),
createTime datetime
)
declare @i int
declare @sql varchar(1000)
set @i=0
while (@i<100000) --Ñ»·²åÈë10wÌõÊý¾Ý
begin
set @i=@i+1
set @sql=' insert into #tb1 values ('+convert(varchar(10),@i)+',''erzi'+ convert(nvarchar(30),@i)+''','''+ convert(nvarchar(30),getdate())+''')'
exec(@sql)
end
|
ÎÒÕâÀïÔËÐÐʱ¼äÊÇ51Ãë
--´´½¨ÁÙʱ±í
create table #tb2
(
id int,
name nvarchar(30),
createTime datetime
)
declare @i int
declare @sql varchar(8000)
declare @j int
set @i=0
while (@i<10000) --Ñ»·²åÈë10wÌõÊý¾Ý
begin
set @j=0
set @sql=' insert into #tb2 select '+ convert(varchar(10),@i*100+@j)+',' 'erzi'+convert(nvarchar(30),@i*100+@j)+''',' ''+convert(varchar(50),getdate())+''''
set @i=@i+1
while(@j<10)
begin
set @sql=@sql+' union all select '+ convert(varchar(10),@i*100+@j)+','' erzi'+convert(nvarchar(30),@i*100+@j)+''', '''+convert(varchar(50),getdate())+''''
set @j=@j+1
end
exec(@sql)
end
drop table #tb2
select count(1) from #tb2 |
ÎÒÕâÀïÔËÐÐʱ¼ä´ó¸ÅÊÇ20Ãë
·ÖÎö˵Ã÷£ºinsert into selectÅúÁ¿²åÈ룬Ã÷ÏÔÌáÉýЧÂÊ¡£ËùÒÔÒÔºó¾¡Á¿±ÜÃâÒ»¸ö¸öÑ»·²åÈë¡£
ÓÅ»¯ÐÞ¸Äɾ³ýÓï¾ä
Èç¹ûÄãͬʱÐ޸Ļòɾ³ý¹ý¶àÊý¾Ý£¬»áÔì³ÉcpuÀûÓÃÂʹý¸ß´Ó¶øÓ°Ïì±ðÈ˶ÔÊý¾Ý¿âµÄ·ÃÎÊ¡£
Èç¹ûÄãɾ³ý»òÐ޸Ĺý¶àÊý¾Ý£¬²ÉÓõ¥Ò»Ñ»·²Ù×÷£¬ÄÇô»áÊÇЧÂʺܵͣ¬Ò²¾ÍÊDzÙ×÷ʱ¼ä¹ý³Ì»áºÜÂþ³¤¡£
ÕâÑùÄã¸ÃÔõô×öÄØ£¿
ÕÛÖеİ취¾ÍÊÇ£¬·ÖÅú²Ù×÷Êý¾Ý¡£
delete product
where id<1000
delete product where id>=1000 and id<2000
delete product where id>=2000 and id<3000
..... |
µ±È»ÕâÑùµÄÓÅ»¯·½Ê½²»Ò»¶¨ÊÇ×îÓŵÄÑ¡Ôñ£¬ÆäʵÕâÈýÖÖ·½Ê½¶¼ÊÇ¿ÉÒԵģ¬ÕâÒª¸ù¾ÝÄãϵͳµÄ·ÃÎÊÈȶÈÀ´¶¨¶á£¬¹Ø¼üÄãÒªÃ÷°×ʲôÑùµÄÓï¾äÊÇʲôÑùµÄЧ¹û¡£
×ܽ᣺ÓÅ»¯£¬×îÖØÒªµÄÊÇÔÚÓÚÄãÆ½Ê±Éè¼ÆÓï¾ä£¬Êý¾Ý¿âµÄϰ¹ß£¬·½Ê½¡£Èç¹ûÄãÆ½Ê±²»ÔÚÒ⣬»ã×ܵ½Ò»¿éÔÙ×öÓÅ»¯£¬Äã¾ÍÐèÒªÄÍÐĵķÖÎö£¬È»¶ø·ÖÎöµÄ¹ý³Ì¾Í¿´ÄãµÄÎòÐÔ£¬ÐèÇó£¬ÖªÊ¶Ë®Æ½À²¡£ |