際際滷

際際滷Share a Scribd company logo
?? ??? ??  ?????? ???? ??  ? ?? ??? ??? DB ?  ??? ,  ???
?? Intro DB  ??? ??? ??? ?? ?? DB  ??? ??? ?? ?? 2.  ?????? ???? ?? I/O  ?? ?? ?? ?? ?? ?? 3. T-SQL  ?? ??? ?? ?? ?? 4. Q&A
01. Intro
DB ??? ??? ??? ?? ?? ?? ?? ???? ? ??? ?? ?? ?? ?? ????? ??
DB ??? ??? ??? ?? ?? ?? ??? ?? ???? ? SQL  ?? ??? ?? ?? ?? ?? , ???? ?? ?? ??? ?? ??? ?? ?? ?? ?? ??? ???? ?? ??
DB ??? ???  ?? ?? ???? ?? CPU Memory Disk (I/O) DB  ??? ?? DB  ??  ( ??? ) SQL  ??
DB ??? ???  ?? ?? ???? ?? CPU Memory Disk (I/O) DB  ??? ?? DB  ??  ( ??? ) SQL  ??
02.  ?????? ???? ?? (I/O  ?? ??  /  ?? ?? )
I/O  ?? ?? ?? 1.  ???? ?? ?? 2. Checkpoint  ???  I/O  ?? 3. MMORPG  ????  Cache  ?? ???
???? ?? ?? ?? ?? ??? ???? ?????  DB ? ??? ??? ??
???? ?? ?? ?? ?? ??? ?? ???? ?? ?  I/O  ?? ?? ????? ??? ?? ?? ?? ??? ?? ?? ??? ????? ??? ?? 2008-11-05 02:22:31.340 spid2s?????? SQL Server has encountered 1 occurrence(s) of  I/O requests taking longer than 15 seconds  to complete on file [U:\#####.ndf] in database [#####] (6).? The OS file handle is 0x00000B34.? The offset of th´.
???? ?? ?? ??? ?? ???  4 ? ?  Raid 5 ? ?? ?????? DB  ??? ?? ??? ????  Raid 10  ?? Raid 5 ? ??? ?? ?? ??? ??? ?? ??? ??? ??
???? ?? ?? ?? ??? ?? ?? DB ?? ??? ?? ?? ???? ?  20 ?
I/O  ?? ?? ?? 1.  ???? ?? ?? 2. Checkpoint  ???  I/O  ?? 3. MORPG  ????  Cache  ?? ???
Checkpoint ?  I/O  ?? ?? ????? ????? ??? ??  /  ??
Checkpoint ?  I/O  ?? ?? ?? ??? ??? ? ??? ??? ????? ?? ?? Perfmon/Profiler  ??? ??  &  ??
Checkpoint ?  I/O  ??
Checkpoint ?  I/O  ?? ?? ??? ?? ?? ??  (write cache) SQL Server  ?? ????? Recovery Interval  ?? ?? ?? ?  30 ?
I/O  ?? ?? ?? 1.  ???? ?? ?? 2. Checkpoint  ???  I/O  ?? 3. MORPG  ????  Cache  ?? ???
???? ??? ?? ?? ??  CBT  ?? ??? ???? ??????? ??  DB ??? ?????? ?? ??
???? ??? ?? ?? ??? ?? ? ??? ?? ,  ??? ?? ???  ??  DB ? ?? ??
???? ??? ?? ?? ???  DB ?? ??? ??? ??? ?? ??? ????? ??  (Cache server) ?? ?? ?? ?  DB ??? ???  400%  ?? ?? ?? ?  2 ?
??? ?!
?? ?? ?? ?? ?? ?? 2.  ???? ?? 3. I/O  ??? ?? ??? ??
1.  ?? ?? ?? Scale up ?? ?? ?????? ?? ?? ???? ??? ?? Scale out ??? ??? ??? ?? ???? ??? ??? ?? ?? ? ?? ??? ?? ?? ??
2.  ?? ?? ?? ?? ?? ??? ??? DB ?? ?? ???? ?????? ?????? ? ? ?? ??? ?? ? ?? ?? ?? ??? ?? ?? ?? ?? ?????? ?? ????  DB ??? ?? ???? ?? ??????? ??? ????  DB  ??? ?????? ???? ??? ?? DB ??? ??? ?? ??
2.  ?? ?? ?? Middle layer ? ?? ?? Middle Layer Server Layer Client Layer Users [ ?? ] -  ??? ???? . -  ??? ?? ???  DB ? ?? ???? . [ ?? ] - DB ? ??? ?? ???? ?? ??? ?? . - DB  ???? ?? .  Game Server (or   IIS) DB Server (Game DB) DB Server (GameLog DB)
2.  ?? ?? ?? Middle layer ? ?? ??  (Cache server) Middle Layer Server Layer Client Layer Users [ ?? ] - DB  ??? ???? . - DB ?? ?? ??? ????? ???? . [ ?? ] -  ??? ??? ??? ? ?? . -  ??? ???? ,  ?? ???? ???? .  Game Server (or   IIS) DB Server (Game DB) DB Server (GameLog DB) Cache Server Queue (Async)
3. I/O  ?? ?? ??? ??? ?? ??? ????? ?? ??? ??? ?? ?? / ?? ?? ??? ?? ??
3. I/O  ?? ?? ??  DB ? ?? ??  DB ? ?? ?? ???? ??? ???? ????? ?? Middle Layer Server Layer Client Layer Game Server (or   IIS) DB Server (Game DB) DB Server (GameLog DB) Cache Server Queue (Async)
???? ????? ??? ?? ?? ??  ?? ?  ??? ??  2 ? ! ??? ?????  ?? ?? ?????? !
?? DB  ?? ??? ??? ???  I/O,  ?? ??? DB  ?? ??? ??? ?? ? ??? ?? ?? ?? ??  ?? I/O  ?? ??
??? ??? *.  ?? ?? ? ???? . *.  ?? ????  ??? ??? ?? ?? ?? ??? ????  ???? ?? ?? ?? ????? ????? . *.  ?? ??? ?? ??? ???? ??? ??? ?? ??? ?? ??? ????? ???? .
03. T-SQL  ?? ???
? ??? DISK MEMORY select name  from dbo.table  where id = 10000 Id = 10000 Name  =  ??? Id = 10000 Name =  ???
T-SQL  ?? ??? ???  ?? ??? PLAN CACHE POLLUTION ???
???
?
??? ???
?? ??? ??? .....
??? ?? ?? ?? ??? ? .
??? ?? ? ?? ?? ?? ??? ???? : 100 ???? : 110
??? ????? ???´ ? ??? ?? ? ???? : 100 ???? :   ???
???
??? ??? ??? ?? ?? ?? ??? ??? ??? ??  ?? ? / ? ???
?? ??? ??
CPU ? .. 80 ? ?? .. ???????? ???  ??´
?? ??? ??  ??? ?? ? ?? ???  A  ?? ?? ??? .. --NEWID  ? ?? ?? SELECT   TOP  1  IDX  FROM   dbo . Lotto  ORDER   BY   NEWID ()
?? ??? ?? ??? ?? ??? Rand  ?? ?? --  ?????  MAX  ?? ??? ?? SELECT   @A   =   MAX ( IDX )   FROM   dbo . Lotto --  ??? ?? ?? ?? SELECT   TOP  1  IDX   FROM   dbo . Lotto WHERE   IDX   <   ( @A   *   RAND ()) ORDER   BY   IDX   DESC
?? ??? ?? ??? ~ ?? ? 5,  ??? ?? ? 2884,  CPU  ?? = 2214 ?? ? ,  ???? = 5228 ?? ? ?? ? 1,  ??? ?? ? 3,  CPU  ?? = 0 ?? ? ,  ???? = 84 ?? ?
PLAN CACHE POLLUTION
Plan cache  ?? ?? PLAN CACHE?
??? ??? ????  ?? ?? ??? ?
Plan cache  ?? ?? ??  B ?? ??  CPU PLAN Cache 2.4GB /6.0GB 40%
Plan cache  ?? ?? ?? ??? ??? ???? ? objtype cacheobjtype bucket_cnt cnt size_in_bytes usecounts Proc Extended Proc 16 17 139264 119269 Check Parse Tree 8 8 180224 717 UsrTab Parse Tree 2 3 483328 11 Prepared Compiled Plan 14092 17438 629841920 38536769 Adhoc Compiled Plan 178 179 13967360 141125 Adhoc Compiled Plan Stub 3866 4043 1206608 61150 View Parse Tree 106 382 42901504 155288 Trigger Compiled Plan 1 1 73728 516 Proc Compiled Plan 140 163 55640064 47457523
Plan cache  ?? ?? ??? ?? ?! (@p0 bigint output,@p1 datetime output,@p2 char(6),@p3 tinyint, @p4 varchar(36) ,@p5 int, @p6 varchar(15) ,@p7 varchar(32),@p8 tinyint,@p9 char(2),@p10 tinyint,@p11 int,@p12 int,@p13 bigint,@p14 tinyint,@p15 int,@p16 varchar(8000),@p17 varchar(10),@p18 smallint,@p19 bit, @p20 varchar(12) ,@RETURN_VALUE int output) EXEC  @RETURN_VALUE = [dbo].[sp_name]  @session_no = @p0 OUTPUT, @session_datetime = @p1 OUTPUT, @service_code = @p2, @server_no = @p3, @user_game_id = @p4, @permission_no = @p5, @session_ip = @p6, @session_mid = @p7, @authorize_result = @p8, @authorize_type = @p9, @message_type = @p10, @message_option = @p11, @agency_no = @p12, @grc = @p13, @deny_result = @p14, @user_no = @p15, @user_name = @p16, @session_option = @p17, @limit_id_count = @p18, @use_exp_id = @p19, @connect_ip = @p20 ? (@p0 bigint output,@p1 datetime output,@p2 char(6),@p3 tinyint, @p4 varchar(17) ,@p5 int, @p6 varchar(11) ,@p7 varchar(32),@p8 tinyint,@p9 char(2),@p10 tinyint,@p11 int,@p12 int,@p13 bigint,@p14 tinyint,@p15 int,@p16 varchar(8000),@p17 varchar(10),@p18 smallint,@p19 bit, @p20 varchar(8) ,@RETURN_VALUE int output) EXEC  @RETURN_VALUE = [dbo].[ sp_name ]  @session_no = @p0 OUTPUT, @session_datetime = @p1 OUTPUT, @service_code = @p2, @server_no = @p3, @user_game_id = @p4, @permission_no = @p5, @session_ip = @p6, @session_mid = @p7, @authorize_result = @p8, @authorize_type = @p9, @message_type = @p10, @message_option = @p11, @agency_no = @p12, @grc = @p13, @deny_result = @p14, @user_no = @p15, @user_name = @p16, @session_option = @p17, @limit_id_count = @p18, @use_exp_id = @p19, @connect_ip = @p20
Plan cache  ?? ?? ??? ?? ?? ? cnt size_in_bytes parsed 16285 547962880 @RETURN_VALUE = [dbo].[sp_name] @s... 70 1654784 @RETURN_VALUE = [dbo].[sp_name_2] @s... 69 1564672 @RETURN_VALUE = [dbo].[sp_name_3] @u... 67 1925120 @RETURN_VALUE = [dbo].[sp_name_4] @s... 9 172032 @RETURN_VALUE = [dbo].[sp_name_8] @a... ... ... ...
? ?? ??´ Memory Allocated To Plan Caching Plan cache  ?? ?? MSSQL VERSION SIZE 2000 2005 ~SP1 2005 SP2~ 0~8GB 4G 75% 75% 8~64GB   50% 10% 64GB~   25% 5%
??? ?? ??? ? Parameter Type, Size FIX ?? ????? PLAN CACHE  ??? mssql 2008 : Optimize for ad-hoc query Plan cache  ?? ??
???
?? ?? .. ?  ?????? .. ?? ;
??? ? ? Owner   IS Owner IX Request   IS Request   IX ???? ???? ??? ?? ???? CACHETABLE CTI_USERID NONCLUSTERED USERID
??? ?? ?? ?? ?? ?? WITH(NOLOCK) Owner   IS Owner IX Request   IX
??????
??? ?? ?? ?? ?? ?
??? ? ..?  ( ??? ) ( ??? ) Owner   S Owner   X Request   X Request   S ???? ???? ??? ?? ???? ??? tit_table_deadlocktest tii_IDX NONCLUSTERED IDX name, nickname
??? ??? ???   Owner   S Request   X ???? ???? ??? ?? ???? ??? tit_table_daadlocktest tii_IDX NONCLUSTERED IDX name, nickname, registdate
??? ???? ??? ??? ????? ?? ???? ?? ??? ??? ?? ?? ?? ??? ?? ??
Q&A ?????? ???? ?? I/O  ?? ?? ?? ???? ?? ?? Checkpoint  ???  I/O  ?? ?? ?? ??? ?? ?? ?? T-SQL  ?? ??? ?? ?? ?? ??? ?? ??? ?? Plan cache ???
END.

More Related Content

What's hot (20)

PDF
NDC 2013, ???? ??? ?? ???? ???-??
tcaesvk
?
PDF
Python におけるドメインl嘖O(蚩g中)の娠どころ
Junya Hayashi
?
PPTX
???, ?? ?? ?????? ?? ? - ?? ?? ???? ??? ??, NDC2019
devCAT Studio, NEXON
?
PDF
??????? ???? ?? ??? ???
Lee Sangkyoon (Kay)
?
PDF
Multiplayer Game Sync Techniques through CAP theorem
Seungmo Koo
?
PDF
???, 10?? ?? ??? ??? ????
devCAT Studio, NEXON
?
PDF
仝秤鵝垢髻く々ということ() #RedmineJapan
Kazuhito Miura
?
PPTX
Swin Transformer (ICCV'21 Best Paper) を頼莎に尖盾するY創
Yusuke Uchida
?
PDF
?????? 8
Seokmin No
?
PPTX
?????? ??? ????: ? ???? ??? ??? ???
Lee Sangkyoon (Kay)
?
PPTX
Tensor コアを聞った PyTorch の互堀晒
Yusuke Fujimoto
?
PPT
?? ?? ???, ??? ??(How to write great design documents) from GDC 2008 (Korean)
Kay Kim
?
PDF
??? ??? MMORPG? ???? ???
QooJuice
?
PPTX
v方侏?オブジェクト峺 忱縮蚯に藤れたなたに僕るGo冱Z秘T
Tadahiro Ishisaka
?
PPTX
???, ??? ???
devCAT Studio, NEXON
?
PDF
???, ?? ?????? ?? ??? ??, NDC2012
devCAT Studio, NEXON
?
PPTX
??? ????? ?? ?? ????
YEONG-CHEON YOU
?
PPTX
Paper: Objects as Points(CenterNet)
Yusuke Fujimoto
?
PDF
NDC 2010 ??? - ???? ??? ????? 2?
Eunseok Yi
?
PPTX
?? ?? ?? ??
Hyunjik Bae
?
NDC 2013, ???? ??? ?? ???? ???-??
tcaesvk
?
Python におけるドメインl嘖O(蚩g中)の娠どころ
Junya Hayashi
?
???, ?? ?? ?????? ?? ? - ?? ?? ???? ??? ??, NDC2019
devCAT Studio, NEXON
?
??????? ???? ?? ??? ???
Lee Sangkyoon (Kay)
?
Multiplayer Game Sync Techniques through CAP theorem
Seungmo Koo
?
???, 10?? ?? ??? ??? ????
devCAT Studio, NEXON
?
仝秤鵝垢髻く々ということ() #RedmineJapan
Kazuhito Miura
?
Swin Transformer (ICCV'21 Best Paper) を頼莎に尖盾するY創
Yusuke Uchida
?
?????? 8
Seokmin No
?
?????? ??? ????: ? ???? ??? ??? ???
Lee Sangkyoon (Kay)
?
Tensor コアを聞った PyTorch の互堀晒
Yusuke Fujimoto
?
?? ?? ???, ??? ??(How to write great design documents) from GDC 2008 (Korean)
Kay Kim
?
??? ??? MMORPG? ???? ???
QooJuice
?
v方侏?オブジェクト峺 忱縮蚯に藤れたなたに僕るGo冱Z秘T
Tadahiro Ishisaka
?
???, ?? ?????? ?? ??? ??, NDC2012
devCAT Studio, NEXON
?
??? ????? ?? ?? ????
YEONG-CHEON YOU
?
Paper: Objects as Points(CenterNet)
Yusuke Fujimoto
?
NDC 2010 ??? - ???? ??? ????? 2?
Eunseok Yi
?
?? ?? ?? ??
Hyunjik Bae
?

Viewers also liked (20)

PPT
??????? ??
Byung Kook Ha
?
PPTX
DB ?? ??
Dong-Jin Park
?
PDF
?????? ??? ??
Hoyoung Jung
?
PDF
?? ???? ??
?? ?
?
PDF
ERD? ??? DB ???
Young D
?
PDF
H3 2011 ????? ? ???? ? ????_??IN Lab?_???
KTH, ??????
?
PPTX
??? ??? ( Binding )
?? ?
?
PPTX
?????? ???
Lee Seongje
?
PDF
?????????Db??? big data
Sung Woo Leem
?
PPTX
Scalable web architecture
Steve Min
?
PDF
? ???? ?? ??? Part1
kisu kim
?
PPSX
120515 security framework2.20
skccsocial
?
PDF
AWS GameServer Management
lactrious
?
PDF
Java programming language
Chiwon Song
?
PPTX
01. ??? ??? ?? ?? ?? slide
Jong Lee
?
PPT
KGC 2014 Hwang Seonpill Line Game Global
Seonpill Hwang
?
PDF
?????? ??? ????? ?? ?? By ????? ???? 2015.12.03
Devgear
?
PPTX
Postgres-BDR with Google Cloud Platform
SungJae Yun
?
PPTX
Database Concept - ERD Mapping to MS Access
Oum Saokosal
?
ODP
1 mysql???? v1
resoliwan
?
??????? ??
Byung Kook Ha
?
DB ?? ??
Dong-Jin Park
?
?????? ??? ??
Hoyoung Jung
?
?? ???? ??
?? ?
?
ERD? ??? DB ???
Young D
?
H3 2011 ????? ? ???? ? ????_??IN Lab?_???
KTH, ??????
?
??? ??? ( Binding )
?? ?
?
?????? ???
Lee Seongje
?
?????????Db??? big data
Sung Woo Leem
?
Scalable web architecture
Steve Min
?
? ???? ?? ??? Part1
kisu kim
?
120515 security framework2.20
skccsocial
?
AWS GameServer Management
lactrious
?
Java programming language
Chiwon Song
?
01. ??? ??? ?? ?? ?? slide
Jong Lee
?
KGC 2014 Hwang Seonpill Line Game Global
Seonpill Hwang
?
?????? ??? ????? ?? ?? By ????? ???? 2015.12.03
Devgear
?
Postgres-BDR with Google Cloud Platform
SungJae Yun
?
Database Concept - ERD Mapping to MS Access
Oum Saokosal
?
1 mysql???? v1
resoliwan
?
Ad

Similar to Ndc2011 ?? ???_??_??????_????_??_?_??_??? (20)

PDF
[2015 07-06-???] Oracle ?? ??? ? ?? ??? 4
Seok-joon Yun
?
PPT
ecdevday8 ????? ???? SQL ????
Kenu, GwangNam Heo
?
PPTX
??? DB ????? ??
?? ?
?
PPTX
Windows ?????? ??? SQL Server ?? ??
Sung wook Kang
?
PDF
??? ?? ??? AWS DB ??? ?? ??? ??::???::AWS Summit Seoul 2018
Amazon Web Services Korea
?
PDF
?? ??? ??? ?? ??? : DB Migration case study (??? ??????? Technical Manager, ?...
Amazon Web Services Korea
?
PPTX
NexGen overview_201705
CDIT-HCI
?
PDF
DynamoDB?? ???????? - ??? (???? ???)
AWSKRUG - AWS???????
?
PDF
????? Memcached 1
Jinwoo Hong
?
PPTX
??? ?? DBA ???
?? ?
?
PDF
?? ???? ?? AWS?? ??? SQL ?????? ?? (??? ???? ????, AWS) :: Gaming on AWS 2018
Amazon Web Services Korea
?
PDF
Bind Peeking ??? ?? Adaptive Cursor Sharing ??_Wh oracle
??
?
PDF
Result Cache ???? ? ????_Wh oracle
??
?
PPTX
KGC 2014: ?? ?? ?? ???
Hyunjik Bae
?
PPT
????? ?? Sql server 2012? ??? ????? ?? ???
cranbe95
?
PDF
Webservice cache strategy
DaeMyung Kang
?
PDF
110922 oracle ap
Cana Ko
?
PDF
SQL Server Access Patterns
Sung wook Kang
?
DOCX
MySQL_SQL_Tunning_v0.1.3.docx
NeoClova
?
PPTX
DBMS ????
HaksunLEE6
?
[2015 07-06-???] Oracle ?? ??? ? ?? ??? 4
Seok-joon Yun
?
ecdevday8 ????? ???? SQL ????
Kenu, GwangNam Heo
?
??? DB ????? ??
?? ?
?
Windows ?????? ??? SQL Server ?? ??
Sung wook Kang
?
??? ?? ??? AWS DB ??? ?? ??? ??::???::AWS Summit Seoul 2018
Amazon Web Services Korea
?
?? ??? ??? ?? ??? : DB Migration case study (??? ??????? Technical Manager, ?...
Amazon Web Services Korea
?
NexGen overview_201705
CDIT-HCI
?
DynamoDB?? ???????? - ??? (???? ???)
AWSKRUG - AWS???????
?
????? Memcached 1
Jinwoo Hong
?
??? ?? DBA ???
?? ?
?
?? ???? ?? AWS?? ??? SQL ?????? ?? (??? ???? ????, AWS) :: Gaming on AWS 2018
Amazon Web Services Korea
?
Bind Peeking ??? ?? Adaptive Cursor Sharing ??_Wh oracle
??
?
Result Cache ???? ? ????_Wh oracle
??
?
KGC 2014: ?? ?? ?? ???
Hyunjik Bae
?
????? ?? Sql server 2012? ??? ????? ?? ???
cranbe95
?
Webservice cache strategy
DaeMyung Kang
?
110922 oracle ap
Cana Ko
?
SQL Server Access Patterns
Sung wook Kang
?
MySQL_SQL_Tunning_v0.1.3.docx
NeoClova
?
DBMS ????
HaksunLEE6
?
Ad

Ndc2011 ?? ???_??_??????_????_??_?_??_???

  • 1. ?? ??? ?? ?????? ???? ?? ? ?? ??? ??? DB ? ??? , ???
  • 2. ?? Intro DB ??? ??? ??? ?? ?? DB ??? ??? ?? ?? 2. ?????? ???? ?? I/O ?? ?? ?? ?? ?? ?? 3. T-SQL ?? ??? ?? ?? ?? 4. Q&A
  • 4. DB ??? ??? ??? ?? ?? ?? ?? ???? ? ??? ?? ?? ?? ?? ????? ??
  • 5. DB ??? ??? ??? ?? ?? ?? ??? ?? ???? ? SQL ?? ??? ?? ?? ?? ?? , ???? ?? ?? ??? ?? ??? ?? ?? ?? ?? ??? ???? ?? ??
  • 6. DB ??? ??? ?? ?? ???? ?? CPU Memory Disk (I/O) DB ??? ?? DB ?? ( ??? ) SQL ??
  • 7. DB ??? ??? ?? ?? ???? ?? CPU Memory Disk (I/O) DB ??? ?? DB ?? ( ??? ) SQL ??
  • 8. 02. ?????? ???? ?? (I/O ?? ?? / ?? ?? )
  • 9. I/O ?? ?? ?? 1. ???? ?? ?? 2. Checkpoint ??? I/O ?? 3. MMORPG ???? Cache ?? ???
  • 10. ???? ?? ?? ?? ?? ??? ???? ????? DB ? ??? ??? ??
  • 11. ???? ?? ?? ?? ?? ??? ?? ???? ?? ? I/O ?? ?? ????? ??? ?? ?? ?? ??? ?? ?? ??? ????? ??? ?? 2008-11-05 02:22:31.340 spid2s?????? SQL Server has encountered 1 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [U:\#####.ndf] in database [#####] (6).? The OS file handle is 0x00000B34.? The offset of th´.
  • 12. ???? ?? ?? ??? ?? ??? 4 ? ? Raid 5 ? ?? ?????? DB ??? ?? ??? ???? Raid 10 ?? Raid 5 ? ??? ?? ?? ??? ??? ?? ??? ??? ??
  • 13. ???? ?? ?? ?? ??? ?? ?? DB ?? ??? ?? ?? ???? ? 20 ?
  • 14. I/O ?? ?? ?? 1. ???? ?? ?? 2. Checkpoint ??? I/O ?? 3. MORPG ???? Cache ?? ???
  • 15. Checkpoint ? I/O ?? ?? ????? ????? ??? ?? / ??
  • 16. Checkpoint ? I/O ?? ?? ?? ??? ??? ? ??? ??? ????? ?? ?? Perfmon/Profiler ??? ?? & ??
  • 17. Checkpoint ? I/O ??
  • 18. Checkpoint ? I/O ?? ?? ??? ?? ?? ?? (write cache) SQL Server ?? ????? Recovery Interval ?? ?? ?? ? 30 ?
  • 19. I/O ?? ?? ?? 1. ???? ?? ?? 2. Checkpoint ??? I/O ?? 3. MORPG ???? Cache ?? ???
  • 20. ???? ??? ?? ?? ?? CBT ?? ??? ???? ??????? ?? DB ??? ?????? ?? ??
  • 21. ???? ??? ?? ?? ??? ?? ? ??? ?? , ??? ?? ??? ?? DB ? ?? ??
  • 22. ???? ??? ?? ?? ??? DB ?? ??? ??? ??? ?? ??? ????? ?? (Cache server) ?? ?? ?? ? DB ??? ??? 400% ?? ?? ?? ? 2 ?
  • 24. ?? ?? ?? ?? ?? ?? 2. ???? ?? 3. I/O ??? ?? ??? ??
  • 25. 1. ?? ?? ?? Scale up ?? ?? ?????? ?? ?? ???? ??? ?? Scale out ??? ??? ??? ?? ???? ??? ??? ?? ?? ? ?? ??? ?? ?? ??
  • 26. 2. ?? ?? ?? ?? ?? ??? ??? DB ?? ?? ???? ?????? ?????? ? ? ?? ??? ?? ? ?? ?? ?? ??? ?? ?? ?? ?? ?????? ?? ???? DB ??? ?? ???? ?? ??????? ??? ???? DB ??? ?????? ???? ??? ?? DB ??? ??? ?? ??
  • 27. 2. ?? ?? ?? Middle layer ? ?? ?? Middle Layer Server Layer Client Layer Users [ ?? ] - ??? ???? . - ??? ?? ??? DB ? ?? ???? . [ ?? ] - DB ? ??? ?? ???? ?? ??? ?? . - DB ???? ?? . Game Server (or IIS) DB Server (Game DB) DB Server (GameLog DB)
  • 28. 2. ?? ?? ?? Middle layer ? ?? ?? (Cache server) Middle Layer Server Layer Client Layer Users [ ?? ] - DB ??? ???? . - DB ?? ?? ??? ????? ???? . [ ?? ] - ??? ??? ??? ? ?? . - ??? ???? , ?? ???? ???? . Game Server (or IIS) DB Server (Game DB) DB Server (GameLog DB) Cache Server Queue (Async)
  • 29. 3. I/O ?? ?? ??? ??? ?? ??? ????? ?? ??? ??? ?? ?? / ?? ?? ??? ?? ??
  • 30. 3. I/O ?? ?? ?? DB ? ?? ?? DB ? ?? ?? ???? ??? ???? ????? ?? Middle Layer Server Layer Client Layer Game Server (or IIS) DB Server (Game DB) DB Server (GameLog DB) Cache Server Queue (Async)
  • 31. ???? ????? ??? ?? ?? ?? ?? ? ??? ?? 2 ? ! ??? ????? ?? ?? ?????? !
  • 32. ?? DB ?? ??? ??? ??? I/O, ?? ??? DB ?? ??? ??? ?? ? ??? ?? ?? ?? ?? ?? I/O ?? ??
  • 33. ??? ??? *. ?? ?? ? ???? . *. ?? ???? ??? ??? ?? ?? ?? ??? ???? ???? ?? ?? ?? ????? ????? . *. ?? ??? ?? ??? ???? ??? ??? ?? ??? ?? ??? ????? ???? .
  • 34. 03. T-SQL ?? ???
  • 35. ? ??? DISK MEMORY select name from dbo.table where id = 10000 Id = 10000 Name = ??? Id = 10000 Name = ???
  • 36. T-SQL ?? ??? ??? ?? ??? PLAN CACHE POLLUTION ???
  • 37. ???
  • 38. ?
  • 40. ?? ??? ??? .....
  • 41. ??? ?? ?? ?? ??? ? .
  • 42. ??? ?? ? ?? ?? ?? ??? ???? : 100 ???? : 110
  • 43. ??? ????? ???´ ? ??? ?? ? ???? : 100 ???? : ???
  • 44. ???
  • 45. ??? ??? ??? ?? ?? ?? ??? ??? ??? ?? ?? ? / ? ???
  • 47. CPU ? .. 80 ? ?? .. ???????? ??? ??´
  • 48. ?? ??? ?? ??? ?? ? ?? ??? A ?? ?? ??? .. --NEWID ? ?? ?? SELECT TOP 1 IDX FROM dbo . Lotto ORDER BY NEWID ()
  • 49. ?? ??? ?? ??? ?? ??? Rand ?? ?? -- ????? MAX ?? ??? ?? SELECT @A = MAX ( IDX ) FROM dbo . Lotto -- ??? ?? ?? ?? SELECT TOP 1 IDX FROM dbo . Lotto WHERE IDX < ( @A * RAND ()) ORDER BY IDX DESC
  • 50. ?? ??? ?? ??? ~ ?? ? 5, ??? ?? ? 2884, CPU ?? = 2214 ?? ? , ???? = 5228 ?? ? ?? ? 1, ??? ?? ? 3, CPU ?? = 0 ?? ? , ???? = 84 ?? ?
  • 52. Plan cache ?? ?? PLAN CACHE?
  • 53. ??? ??? ???? ?? ?? ??? ?
  • 54. Plan cache ?? ?? ?? B ?? ?? CPU PLAN Cache 2.4GB /6.0GB 40%
  • 55. Plan cache ?? ?? ?? ??? ??? ???? ? objtype cacheobjtype bucket_cnt cnt size_in_bytes usecounts Proc Extended Proc 16 17 139264 119269 Check Parse Tree 8 8 180224 717 UsrTab Parse Tree 2 3 483328 11 Prepared Compiled Plan 14092 17438 629841920 38536769 Adhoc Compiled Plan 178 179 13967360 141125 Adhoc Compiled Plan Stub 3866 4043 1206608 61150 View Parse Tree 106 382 42901504 155288 Trigger Compiled Plan 1 1 73728 516 Proc Compiled Plan 140 163 55640064 47457523
  • 56. Plan cache ?? ?? ??? ?? ?! (@p0 bigint output,@p1 datetime output,@p2 char(6),@p3 tinyint, @p4 varchar(36) ,@p5 int, @p6 varchar(15) ,@p7 varchar(32),@p8 tinyint,@p9 char(2),@p10 tinyint,@p11 int,@p12 int,@p13 bigint,@p14 tinyint,@p15 int,@p16 varchar(8000),@p17 varchar(10),@p18 smallint,@p19 bit, @p20 varchar(12) ,@RETURN_VALUE int output) EXEC @RETURN_VALUE = [dbo].[sp_name] @session_no = @p0 OUTPUT, @session_datetime = @p1 OUTPUT, @service_code = @p2, @server_no = @p3, @user_game_id = @p4, @permission_no = @p5, @session_ip = @p6, @session_mid = @p7, @authorize_result = @p8, @authorize_type = @p9, @message_type = @p10, @message_option = @p11, @agency_no = @p12, @grc = @p13, @deny_result = @p14, @user_no = @p15, @user_name = @p16, @session_option = @p17, @limit_id_count = @p18, @use_exp_id = @p19, @connect_ip = @p20 ? (@p0 bigint output,@p1 datetime output,@p2 char(6),@p3 tinyint, @p4 varchar(17) ,@p5 int, @p6 varchar(11) ,@p7 varchar(32),@p8 tinyint,@p9 char(2),@p10 tinyint,@p11 int,@p12 int,@p13 bigint,@p14 tinyint,@p15 int,@p16 varchar(8000),@p17 varchar(10),@p18 smallint,@p19 bit, @p20 varchar(8) ,@RETURN_VALUE int output) EXEC @RETURN_VALUE = [dbo].[ sp_name ] @session_no = @p0 OUTPUT, @session_datetime = @p1 OUTPUT, @service_code = @p2, @server_no = @p3, @user_game_id = @p4, @permission_no = @p5, @session_ip = @p6, @session_mid = @p7, @authorize_result = @p8, @authorize_type = @p9, @message_type = @p10, @message_option = @p11, @agency_no = @p12, @grc = @p13, @deny_result = @p14, @user_no = @p15, @user_name = @p16, @session_option = @p17, @limit_id_count = @p18, @use_exp_id = @p19, @connect_ip = @p20
  • 57. Plan cache ?? ?? ??? ?? ?? ? cnt size_in_bytes parsed 16285 547962880 @RETURN_VALUE = [dbo].[sp_name] @s... 70 1654784 @RETURN_VALUE = [dbo].[sp_name_2] @s... 69 1564672 @RETURN_VALUE = [dbo].[sp_name_3] @u... 67 1925120 @RETURN_VALUE = [dbo].[sp_name_4] @s... 9 172032 @RETURN_VALUE = [dbo].[sp_name_8] @a... ... ... ...
  • 58. ? ?? ??´ Memory Allocated To Plan Caching Plan cache ?? ?? MSSQL VERSION SIZE 2000 2005 ~SP1 2005 SP2~ 0~8GB 4G 75% 75% 8~64GB   50% 10% 64GB~   25% 5%
  • 59. ??? ?? ??? ? Parameter Type, Size FIX ?? ????? PLAN CACHE ??? mssql 2008 : Optimize for ad-hoc query Plan cache ?? ??
  • 60. ???
  • 61. ?? ?? .. ? ?????? .. ?? ;
  • 62. ??? ? ? Owner IS Owner IX Request IS Request IX ???? ???? ??? ?? ???? CACHETABLE CTI_USERID NONCLUSTERED USERID
  • 63. ??? ?? ?? ?? ?? ?? WITH(NOLOCK) Owner IS Owner IX Request IX
  • 65. ??? ?? ?? ?? ?? ?
  • 66. ??? ? ..? ( ??? ) ( ??? ) Owner S Owner X Request X Request S ???? ???? ??? ?? ???? ??? tit_table_deadlocktest tii_IDX NONCLUSTERED IDX name, nickname
  • 67. ??? ??? ??? Owner S Request X ???? ???? ??? ?? ???? ??? tit_table_daadlocktest tii_IDX NONCLUSTERED IDX name, nickname, registdate
  • 68. ??? ???? ??? ??? ????? ?? ???? ?? ??? ??? ?? ?? ?? ??? ?? ??
  • 69. Q&A ?????? ???? ?? I/O ?? ?? ?? ???? ?? ?? Checkpoint ??? I/O ?? ?? ?? ??? ?? ?? ?? T-SQL ?? ??? ?? ?? ?? ??? ?? ??? ?? Plan cache ???
  • 70. END.

Editor's Notes

  • #2: ????? . DB ? ?????? . ? ????? ?? ??? ?? ?????? ????? ??? ?? ??? ???? ??? .
  • #3: DB ??? ??? ??? ?? ??? ??? ??? ???? , ?? ??? ?? ??? ?? ?? , ?? ???? ??? ????????? . ?? 1, 2 ?? ???? , ?????? 3 ? ?? ???? ????? ????? .
  • #4: ?? ?????? ????? .
  • #5: ?? ?? ?? ??? ?? ??? ?? ???? ???? ????? . ?? DB ??? ???? ????? ??? ??? ??? ?? ??? ????? . ??? ??? ???? ?? ??? ?? ??? ??? ????? .
  • #7: 4 ?? ??? ??? ? ?? .
  • #8: 4 ?? ??? ??? ? ?? .
  • #9: ? ???? ???? ?? ?? ???? ??? ?? ???? ??? ?? ??? ??? ???? DB ??? ??? ??? ?? ?? ??? ??? ????? .
  • #11: ?????? ??? ??? , ?????? ?? ???? ??? ??? .
  • #13: ????? ?? , Raid 5 ? ?? ( ??? 4 ? ) ????? ???? ??? ?? ?? ?? ? , ???? ??? ??? ??? ?? ??? ???? ??? . ??? ???? ?????? DB ???? ????? ???? ??? ?? ????? ?? ??? ??? ??? ?? ??? ?? ???? ??? ?? . ?? ??? ??? ? ?? ??? ?? ? ??? ?? ??? .
  • #14: ?? ?? ??? ??? ??? ???? ??? ?? ???
  • #15: ?? ???? ??? ??? ?? ???? ?? ?? ???? ???? ????? ????? ??????? ??? ?? ???? ?? ?? ???? ???? ?? ??? . ??? ?? ??? ? ?? ?? ???? ??? ? ? ???? . Recovery Interval ???? ??? ??? ????? DBMS ? ??? ??? .
  • #18: ????? ??? 300 ? ?? ???? ? ? ??
  • #19: ??? ??? ?? ??? ??? . SQL ?? ?? ??? ????? checkpoint ????? ???? , ??? IO ? ?????? ?? ????? ????? ??? ????? . ?? ????? Recovery Interval ? ??? ?? ??? . ??? ?? ?? ??? ? ??? ????? .
  • #26: Scale up ? ??? ?? ??? ??? ???? ??? ??? Scale out ???? ???? ?? . ???? ??? ???? .
  • #29: Middle ?? ??? ??? ???? ?? db io ??? ??? ???? ?? ??? ???? ?? ??
  • #30: Io ??? gamedb ? logdb ? ????? DB ? ???? ?? ? ??? db ??? ??? ?? ??? ???? ?? ? ?? ??? ??? ??????? ??? ???? ?? ??
  • #31: ?? ? ?? ??? &gt; DB ??? ???? ??? ?? ?? ?? &gt; ?? ??? ??? ??? ?? ??? ?? ???? ???? ???? ?????? ????? ???? ???? .
  • #35: T-SQL ?? ??? ??? ??? DB ? ??? ??? . ?? ? ?? ??? DB ??? ??? ??? ??? ??? ??? ????? ??? ????? ??? ??? ??? ???????? .
  • #36: ??? ???? io ??? SQL ?? ??? ?? ??? ??? ., ? ???? IO ??? ???? ?? ????? ??? ?? sql ??? ???? ??? ?????? ?? ???? ????????? . SQL ??? ???? ?? ?? ?? ???? ???? , ???? ?? ???? ????? ?? ???? ???? ?? ? ??? ???? ????? .. ?? ???? ????? , ?? ???? ?? ???? ???? ????? ??? ????? . ???? ???? IO ??? ??? ??? ??? ????? ???? ? ?? ????? .
  • #37: ? ????? ??? ????? ??? ??????? ?? ??? ??? ??? ,, ???? ????? , ??? ???? ??? ??? ??? ??????? ??? ????? , ????? ????? ? ??? ??? oltp ???? ?? ???? ?? ??? ??? ???? ?? ??? ????? ..
  • #38: ?? ???
  • #39: ?? ?? ??? ??? A ? ??? ??? ????? . ???? ? ???? DB ? ??? ??? ?? ???? ,, ? ??? ???? ????? ???? ??? ???? ?? db ??? ??? ?? ??? ??? . ??? ?? ?? ????? ???? ? ? ??? ,, ?? ???? ?? ??? ? ?????
  • #40: ?? ??? ??? ?????? , ???? ???? ??? ???? ??? ?? ,, ??? ??? ???? ??? ???? ? 600 ???? ???? ?? ???? ?? ? ??????? ,, ??? 600 ?? ???? ???? ??? . ? ?? ????? .,,, ??? ,,
  • #41: ?´? ??? ..?
  • #42: ?? ? ??? ?????? ,, ???? ???? ??? ??? ???? . ? 300 ???? ???? ? ????? 300 ???? ??? 300 ???? ???? ?? ?? 301 ???? ???? ,, 600 ????? ?? ?? . ??? ?? ? ?? ??? ??????? . ??? ,, ???? ??? ,, ??? ???? ..
  • #43: n ?? ???? ??? ???? ?? ???? ?? ????? . 1pAGE ? 10 ?? ?? ???? 1 ?? ??? 10 ? ???? ?? ??? ??? ???? . ?? 10 ???? ???? ?? 10 ???? ?? ?? 1 ?? ??? ? 110 ??? ?? ??? ??? ?? ? , 10 ???? ???? ????? . ?? ??? ??? ? ??? ??? ??? ? ???? . ??? ???? ???? ?? ?? ???? ?? ?? ??? ???? ???? ?? ??? ?? ?? ?? ?? ?? ??? ???? .
  • #44: ?? ,, ????? ???? ??? ?????? ?? ???? ?? ??? ??? ??? ,, ??? ??? ????? ,, ??? ??? ?? ???? ???? ?? , ??? ???? ????? .
  • #45: ??? ?? ?? ??? ?? sp ? ????? ???????? , GETLIST ????? , ?? ??? ??? , ??????? ?? , ?? ?????? , ?? ??? top N ? ,, ????? ???????? ?? top n ?? SELECT ??? .
  • #46: ??? ??? ?? ?? ???? ??? ???? ?? ???? ???? ???? ??? ???? ?? ???? ??? ???? ?? ????????? ,, ??? ?? ?? ?? ???? ??? ????? ????? . ???? ? ? W ? ??? ??? ????? ,, ??? ??? ??? ?? ! ?????? ?????? ?? ? .. ?? ???? ?? ??? ?? ??????? ,, ?? ??? ???? ??? ??? ??? ????? ????? . ?????? ???? ?? ????? ?? ?? ??? ???? ?? ,, ???? ????? ?? ???? ???? . ?? ??? ??????? .
  • #47: ? ??? ?? ??? ??? ??? ????? .
  • #48: ??? ????? ?? ??? ?????? ?
  • #49: ?? ??? a ?? ?? ???? ??????? . ?? ????? ?? ID ? ???? ????? . ? ?? ?? NEWID ??? ??? ,, lotto ??? ?? ?? ID ? ???? ? 1 ?? ???? ????? . LOTTO ???? ?? ????? ?? ???? , ??? ?? ID ? ??????? , CPU ? ?? ???? ?? ??? .
  • #50: ???????? . ?? ????? ???? ??? ?? ??????? . ? ?? MAX ?? @A ??? ?? ? ??? ???? ?? ,, ??? ?? ???? ????? . ??? ??? ?? ???? ??? ?? ?? Full Scan ??? ??? ??? ?? ??? ?? ???? ??
  • #51: ???? ???? ?? ???? ??? ?????? . ??? ??? ?? ??? ??? cpu ??? 2000 ? ??????? . ?? ???? ,, 900 ? ??????? . ??? ??? ????? ????? ,, MSSQL ?? ?? ?? ?? ? ?? ????? . ??? ?? ???? ??? ???? ?? , ???? ??? ?? ,, ????? ??? ????? ??? . ????? ?? ??? ???? ????? ?? ? ???? . ?? ??? ??????? .
  • #53: ????? ?? .. ?? ???????? . Sql ??? ??? ???? ,, ??? ?? ??? ???? ,, ?? ???? ?? ??? ??? ????? ?? ? ???? ?? ??? ????? ??????? . ?? ??? ???? ,, sql ??? ??? ?? ???? ?? ,, ???? ?? ??? ??? ???? ??? ????? . ??? ????? ???? ?? ? ??? ?? ??? ??? ????? ????? ,,
  • #54: ?? ??? ????? ? ? ???? ???? ???? ?????? .
  • #55: ?? ???? ??? ?? ,, b ? ???? ??? ?? ?? ????? . ?? ??? ? ?? ?? ?? CPU ? ?? ??? ,, ADHOC ??? ?? ???? ?? 6G ??? ? 2.4G ? ?? ??? ???? ??? ??? . ?? ????? ?? ???? ???? , ??? ???? 40% ? ???? ????? .
  • #56: ?? ??? ???? dmv ? ?? ??????? . ? ?? ?? PREPARED ?? ? ?? ?? ?? ??? ??? ?? ?? ?? ???? .
  • #57: ???? ????? . ?? ??? ??? ,, ?? SP ? ???? ??? ,, ????? ???? ?? ???? ?? ???? . sqL ??? , ? sp ? ?? SP ?? ??? , ?? ? ???? ????? .
  • #58: ? ? SP ? ??? ???? ,, ???????? . ??? ?? ?? ?
  • #59: ? ?? ?? ????? ??????? . ? ?? ??? ??? ???? ????? ?? ?? ??? ???? ??? ???? . ?? ???? PLAN CACHE POLLOTION ??? ?? ,, ??? ?? ????? ???? ?? ????? ??? ,, ????? ?? ??? ???? ?????? . ???? ???? ?? ???? ???? IO ? ?? ?? ?? ??? ?? ????? cpU ? ???? ??? . ?? ??? ??? ???? ???? ?? , 64bit ?? ?? ???? ??? , ?? ??? ??? ??? ??? , 2000 ? ???? ???? 4g ????? OS, ??? , ????? ?? ???? ??????? ,, ?? ??? ?? ??? ?? ??? ?? ????? .
  • #60: ? ??? ???? ???? ????? SP ? ???? ????? ??? , ???? FIX ?? ??? . ?????? ?? ????? ??? ??? , ? ??? ?? ?? ??? ?? ????? ?? ??? ???? . alter table db_baz_charge set parameterization forced Ad-hoc ??? ?? ???? ?? 2008 ?? ??? optimize for ad-hoc query ?? ?? sp_CONFIGURE `show advanced options¨,1 RECONFIGURE ? ??? ?? ???? ??? ?? ??? ???? ??? ,, ??? ????? ???? ,, ??? ???? ???? ???? , ?? ??? ??? ?? ? ???? . ? ?? ???? ??? ???? ,, ??? ??? ?? ??? ??????? .
  • #61: SQL ?? ???? ?? ???? ?? ??? ? ????? . ?? ??????? ?? ?? ???? ????? ?? ????? ????? . ?? ??? ?? ??? ?? ???? ??? ???? ,, ??? ??? ??? ??? ???? ??? ??? ??? ?? ???? ????????? .
  • #62: ?? ?? ?? ?? ?? , ???? ??????? .
  • #63: ???? ??? ?? ????? USERID ? ??? ?????? . SPID 1 ? ???????? ??? TEMP ???? BULK INSERT ?? ?? SPID 2 ? , ??? ??? ??? ?? ?????????? ???????? ??? . S1 ? ??? ???? ?? ?? S LOCK ? ???? , S2 ? ??? ??? ??? ???? ???? ?? X ??? ??????? . ?? S2 ? ??? ????? ???? ?? X ??? ???? , S1 ? ??? ???? ?? ?? S ??? ?????? . ? ??? ??? ????? . ? 3 ? ??? ???? ??? ? ????? ?? ???? , ?? ??? ???? ?? ??? ??? ??? .
  • #64: ? ??? S1 ??? ?? ?????? ???? ?? ?? ?????? . ?? ????? ???? ??? ??????? . ?? ??? ??? WITH(NOLOCK) ??? ?? X ? ???? ??? ???? ????? ,, ? ?????? ??? ???? ????? ??????? .
  • #65: S ? ???? ????? ?? ?? ??? ??? ?? ???? ??? ?? ?? ,, ?? ?? ?? ???? ???? ????? . ???? Perfmon ??? avgwaittime ???? , deadlock ?? ?????? . ??? ??? ?? ???? ??? ??????? ???????? .
  • #66: ?????? ???? , ?? ???? ?? ,, ????? ?? ? ?? ????? ?? ??? ????? ????? ???? . ??? ??? ,, ???????? . SELECT ??? spid 53 ?? update ? ???? spid 54 ? ?? ????? ??? ?? 53 ?? ??????? . ???? ??? ??? ??? ?? ????? ???? ,, ??? ?????? ? ?????????? ?? ???? .
  • #67: Deadlocktest ????? idx ??? ??? , ???? name ? nickname ? ???? ???? ??????? . ? ????? ?? ????????? . 53 ?? idx , name, nickname ? ?????? ??? ??? ?? ?? S lock ? ?? ???? ??? ??? registdate ? ?? ?? ?? Slock ? ??? ????? . 54 ?? idx =1 ? ???? ??? update ?? ?? registdate ? ??? rid ? x ??? ???? ,, ?? ??? ??? ???? ?? ,, ??? ???? x ???? ?????? .
  • #68: 53 ?? 54 ?? ?? ??? ?????? , ??? ?? ??? ??? ?? ???????? ,, ?? ?? ????? ??? ??? ??????? . ???? ??? registdate ? ???? ??? ???? ??? ??? ??????? . ?? ???? ??????? 53 ?? ?? ??? ??? ?? 54 ?? 53 ?? ????? ???? ??? . ????? ?? ?????? ????? ??? ???? .
  • #69: ???? ??? ?? ??? ??? ??????? . With(nolock) ?? ?? ?? ??? ???? ??? ??? ??? ??? ??? ??? . 4 ?? ??? ??? ??? ,, ??? ?????? ??? ???? , ???? ???? ??? ???? ???? ??? ,, ??? ?? ?? ?? ????? ,, ?? ?? ??? ???? ?? ??? ???? ???? ?? select ??? ?????? , ??? ?????? . ?? ??? ??? ??? ?? ??? ???? ???? ?? ?????? ????? .