Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
sqlÓï¾äµÄÓÅ»¯·ÖÎö
 
  6669  次浏览      27
 2019-5-14
   
   
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ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
.....

µ±È»ÕâÑùµÄÓÅ»¯·½Ê½²»Ò»¶¨ÊÇ×îÓŵÄÑ¡Ôñ£¬ÆäʵÕâÈýÖÖ·½Ê½¶¼ÊÇ¿ÉÒԵģ¬ÕâÒª¸ù¾ÝÄãϵͳµÄ·ÃÎÊÈȶÈÀ´¶¨¶á£¬¹Ø¼üÄãÒªÃ÷°×ʲôÑùµÄÓï¾äÊÇʲôÑùµÄЧ¹û¡£

×ܽ᣺ÓÅ»¯£¬×îÖØÒªµÄÊÇÔÚÓÚÄãÆ½Ê±Éè¼ÆÓï¾ä£¬Êý¾Ý¿âµÄϰ¹ß£¬·½Ê½¡£Èç¹ûÄãÆ½Ê±²»ÔÚÒ⣬»ã×ܵ½Ò»¿éÔÙ×öÓÅ»¯£¬Äã¾ÍÐèÒªÄÍÐĵķÖÎö£¬È»¶ø·ÖÎöµÄ¹ý³Ì¾Í¿´ÄãµÄÎòÐÔ£¬ÐèÇó£¬ÖªÊ¶Ë®Æ½À²¡£

 
   
6669 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ