์ด 2007 ๋ฐฑ์ ๋ ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ์ ๋ํ ๊ฐ๋ณ ์ ํ / ์ฝ์ / ์ญ์ / ์ ๋ฐ์ดํธ ๋ฐ ๋ฒ์ ์ ํ ๋ฌธ์ ์ฑ๋ฅ๊ณผ CI์ ๋์ผํ ํค ์ด์ ํด๋ฌ์คํฐ๋์ง ์์ ์ธ๋ฑ์ค๊ฐ์๋ ํ์ผ๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ์ ์ฑ๋ฅ์ ๋น๊ตํฉ๋๋ค. ํ.
์ผ๋ฐ์ ์ผ๋ก ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค ์ต์ ์ ์ ์ง ๊ด๋ฆฌ ํ ๊ตฌ์กฐ๊ฐ ํ๋ ๋ฟ์ด๊ณ ์ฑ ๊ฐํผ ์กฐํ๊ฐ ํ์ํ์ง ์์ผ๋ฏ๋ก ํ ์คํธ์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค.
์ด ๋ฐฑ์์์ ๋ค๋ฃจ์ง ์์ ์ ์ฌ์ ์ผ๋ก ํฅ๋ฏธ๋ก์ด ์ฌ๋ก๋ ํ์ ํด๋ฌ์คํฐ๋์ง ์์ ์ธ๋ฑ์ค์ ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค์ ๋น ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค๋ฅผ ๋น๊ต ํ ๊ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ NCI ๋ฆฌํ ์์ค์์ SQL Server์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ฅผ ์ํํ์ง ์๊ณ ์ง์ ๋ฐ๋ผ์ผ ํ RID๊ฐ ์์ผ๋ฉด ํ ์ฑ๋ฅ์ด ํ ๋ฒ ๋ ํฅ์ ๋ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค.
๋๊ตฌ๋ ์ง์ด ์์ญ์์ ์ํ ๋ ์ ์ฌํ ๊ณต์ ํ ์คํธ๋ฅผ ์๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ ๋ฌด์์ ๋๊น?
๋ต๋ณ
๊ทํ์ ์์ฒญ์ ํ์ธํ๊ธฐ ์ํด์ด ๊ตฌ์ฑํ์ ๋ฐ๋ผ 2 ๊ฐ์ ํ ์ด๋ธ์ ๋ง๋ค์์ต๋๋ค.
- ์์ก ์ ๋ณด๋ฅผ ๋ํ๋ด๋ 790 ๋ง ๊ฐ์ ๋ ์ฝ๋.
- 1-7 ๋ฐฑ๋ง์ ์ด๋ฅด๋ ์ ์ ํ๋
- ์ฝ 500k ๊ทธ๋ฃน์ผ๋ก ๋ ์ฝ๋๋ฅผ ๊ทธ๋ฃนํํ๋ ์ซ์ ํ๋.
์ฒซ ๋ฒ์งธ ํ
์ด๋ธ heap
์ ํ๋์์ ํด๋ฌ์คํฐ๋์ง ์์ ์ธ๋ฑ์ค๋ฅผ ์ป์์ต๋๋ค group
. ํธ์ถ ๋ ๋ ๋ฒ์งธ ํ
์ด๋ธ์ ํธ์ถ clust
๋ ์์ฐจ ํ๋์์ ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค๋ฅผ ์ป์๊ณ ํ๋ key
์์ ๋น ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ฅผ ์ป์์ต๋๋ค.group
ํ ์คํธ๋ 2 ๊ฐ์ ํ์ดํผ ์ค๋ ๋ ์ฝ์ด, 4Gb ๋ฉ๋ชจ๋ฆฌ ๋ฐ 64 ๋นํธ ์ฐฝ 7์ ๊ฐ์ถ I5 M540 ํ๋ก์ธ์์์ ์คํ๋์์ต๋๋ค.
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
Apr 2 2010 15:48:46
Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ : Sql Server Profiler์์ ๋ค์ .net ์ฝ๋๋ฅผ ์คํํ๊ณ Duration, CPU, Reads, Writes ๋ฐ RowCounts๋ฅผ ๋ก๊น ํ์ฌ ๋ ๋ฒ์งธ๋ก ๊ด๋ฒ์ํ ๋ฒค์น ๋งํฌ๋ฅผ ์ํํ์ต๋๋ค. ์ฌ์ฉ ๋ CommandText๊ฐ ๊ฒฐ๊ณผ์ ์ธ๊ธ๋ฉ๋๋ค.
์ฐธ๊ณ : CPU ๋ฐ ์ง์ ์๊ฐ์ ๋ฐ๋ฆฌ ์ด๋ก ํ์๋ฉ๋๋ค
- ์ฟผ๋ฆฌ 1000 ๊ฐ
- ์ ๋ก CPU ์ฟผ๋ฆฌ๋ ๊ฒฐ๊ณผ์์ ์ ๊ฑฐ
- ์ํฅ์๋ฐ๋ 0 ๊ฐ์ ํ์ด ๊ฒฐ๊ณผ์์ ์ ๊ฑฐ๋ฉ๋๋ค.
int[] idList = new int[] { 6816588, 7086702, 6498815 ... }; // 1000 values here.
using (var conn = new SqlConnection(@"Data Source=myserver;Initial Catalog=mydb;Integrated Security=SSPI;"))
{
conn.Open();
using (var cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from heap where common_key between @id and @id+1000";
cmd.Parameters.Add("@id", SqlDbType.Int);
cmd.Prepare();
foreach (int id in idList)
{
cmd.Parameters[0].Value = id;
using (var reader = cmd.ExecuteReader())
{
int count = 0;
while (reader.Read())
{
count++;
}
Console.WriteLine(String.Format("key: {0} => {1} rows", id, count));
}
}
}
}
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
์ฑ๋ฅ ์ ํ
Performanc ๋ฒํธ๋ฅผ ํ์ธํ๊ธฐ ์ํด ํ ํ ์ด๋ธ์์ ํ ๋ฒ, clust ํ ์ด๋ธ์์ ํ ๋ฒ ๋ค์ ์ฟผ๋ฆฌ๋ฅผ ์ํํ์ต๋๋ค.
select * from heap/clust where group between 5678910 and 5679410
select * from heap/clust where group between 6234567 and 6234967
select * from heap/clust where group between 6455429 and 6455729
select * from heap/clust where group between 6655429 and 6655729
select * from heap/clust where group between 6955429 and 6955729
select * from heap/clust where group between 7195542 and 7155729
์ด ๋ฒค์น ๋งํฌ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ heap
๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
1503 1510 31ms 309ms
401 405 15ms 283ms
2700 2709 0ms 472ms
0 3 0ms 30ms
2953 2962 32ms 257ms
0 0 0ms 0ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
cmd.CommandText = "select * from heap where group between @id and @id+1000";
- 721 ๊ฐ์ ํ์ 0 ๊ฐ ์ด์์ CPU๊ฐ ์์ผ๋ฉฐ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1001 69788 6368 -
Cpu 15 374 37 0.00754
Reads 1069 91459 7682 1.20155
Writes 0 0 0 0.00000
Duration 0.3716 282.4850 10.3672 0.00180
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
ํ์ clust
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
1503 4827 31ms 327ms
401 1241 0ms 242ms
2700 8372 0ms 410ms
0 3 0ms 0ms
2953 9060 47ms 213ms
0 0 0ms 0ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
cmd.CommandText = "select * from clust where group between @id and @id+1000";
- 721 ๊ฐ์ ํ์ 0 ๊ฐ ์ด์์ CPU๊ฐ ์์ผ๋ฉฐ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1001 69788 6056 -
Cpu 15 468 38 0.00782
Reads 3194 227018 20457 3.37618
Writes 0 0 0 0.0
Duration 0.3949 159.6223 11.5699 0.00214
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
์ฐธ์ฌ ์ฑ๊ณผ๋ก ์ ํ
cmd.CommandText = "select * from heap/clust h join keys k on h.group = k.group where h.group between @id and @id+1000";
์ด ๋ฒค์น ๋งํฌ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ heap
๊ฐ์ต๋๋ค.
873 ๊ฐ์ ํ์> 0 ๊ฐ์ CPU๊ฐ ์๊ณ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์ ๋ฏธ์นจ
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1009 4170 1683 -
Cpu 15 47 18 0.01175
Reads 2145 5518 2867 1.79246
Writes 0 0 0 0.00000
Duration 0.8215 131.9583 1.9095 0.00123
์ด ๋ฒค์น ๋งํฌ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ clust
๊ฐ์ต๋๋ค.
865 ๊ฐ์ ํ์> 0 ๊ฐ์ CPU๊ฐ ์์ผ๋ฉฐ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์์ค๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1000 4143 1685 -
Cpu 15 47 18 0.01193
Reads 5320 18690 8237 4.97813
Writes 0 0 0 0.00000
Duration 0.9699 20.3217 1.7934 0.00109
์ ๋ฐ์ดํธ ์ฑ๋ฅ
๋ ๋ฒ์งธ ์ฟผ๋ฆฌ ๋ฐฐ์น๋ ์ ๋ฐ์ดํธ ๋ช ๋ น๋ฌธ์ ๋๋ค.
update heap/clust set amount = amount + 0 where group between 5678910 and 5679410
update heap/clust set amount = amount + 0 where group between 6234567 and 6234967
update heap/clust set amount = amount + 0 where group between 6455429 and 6455729
update heap/clust set amount = amount + 0 where group between 6655429 and 6655729
update heap/clust set amount = amount + 0 where group between 6955429 and 6955729
update heap/clust set amount = amount + 0 where group between 7195542 and 7155729
์ด ๋ฒค์น ๋งํฌ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ heap
๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
1503 3013 31ms 175ms
401 806 0ms 22ms
2700 5409 47ms 100ms
0 3 0ms 0ms
2953 5915 31ms 88ms
0 0 0ms 0ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
cmd.CommandText = "update heap set amount = amount + @id where group between @id and @id+1000";
- 811 ๊ฐ์ ํ์ 0 ๊ฐ ์ด์์ CPU๊ฐ ์๊ณ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1001 69788 5598 811
Cpu 15 873 56 0.01199
Reads 2080 167593 11809 2.11217
Writes 0 1687 121 0.02170
Duration 0.6705 514.5347 17.2041 0.00344
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
์ด ๋ฒค์น ๋งํฌ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ clust
๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
1503 9126 16ms 35ms
401 2444 0ms 4ms
2700 16385 31ms 54ms
0 3 0ms 0ms
2953 17919 31ms 35ms
0 0 0ms 0ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
cmd.CommandText = "update clust set amount = amount + @id where group between @id and @id+1000";
- 853 ๊ฐ์ ํ์> 0 ๊ฐ์ CPU๊ฐ ์์ผ๋ฉฐ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์์ค๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1001 69788 5420 -
Cpu 15 594 50 0.01073
Reads 6226 432237 33597 6.20450
Writes 0 1730 110 0.01971
Duration 0.9134 193.7685 8.2919 0.00155
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
๋ฒค์น ๋งํฌ ์ญ์
๋ด๊ฐ ์คํ ํ ์ธ ๋ฒ์งธ ์ฟผ๋ฆฌ๋ ์ญ์ ๋ฌธ์ ๋๋ค.
delete heap/clust where group between 5678910 and 5679410
delete heap/clust where group between 6234567 and 6234967
delete heap/clust where group between 6455429 and 6455729
delete heap/clust where group between 6655429 and 6655729
delete heap/clust where group between 6955429 and 6955729
delete heap/clust where group between 7195542 and 7155729
์ด ๋ฒค์น ๋งํฌ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ heap
๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
1503 10630 62ms 179ms
401 2838 0ms 26ms
2700 19077 47ms 87ms
0 4 0ms 0ms
2953 20865 62ms 196ms
0 4 0ms 9ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
cmd.CommandText = "delete heap where group between @id and @id+1000";
- 724 ๊ฐ์ ํ์> 0 ๊ฐ์ CPU๊ฐ ์์ผ๋ฉฐ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์์ค๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 192 69788 4781 -
Cpu 15 499 45 0.01247
Reads 841 307958 20987 4.37880
Writes 2 1819 127 0.02648
Duration 0.3775 1534.3383 17.2412 0.00349
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
์ด ๋ฒค์น ๋งํฌ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ clust
๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
1503 9228 16ms 55ms
401 3681 0ms 50ms
2700 24644 46ms 79ms
0 3 0ms 0ms
2953 26955 47ms 92ms
0 3 0ms 0ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
cmd.CommandText = "delete clust where group between @id and @id+1000";
- 751 ๊ฐ์ ํ์> 0 ๊ฐ์ CPU๊ฐ ์์ผ๋ฉฐ 0 ๊ฐ ์ด์์ ํ์ ์ํฅ์์ค๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 144 69788 4648 -
Cpu 15 764 56 0.01538
Reads 989 458467 30207 6.48490
Writes 2 1830 127 0.02694
Duration 0.2938 2512.1968 24.3714 0.00555
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
INSERT ๋ฒค์น ๋งํฌ
๋ฒค์น ๋งํฌ์ ๋ง์ง๋ง ๋ถ๋ถ์ insert ๋ฌธ์ ์คํ์ ๋๋ค.
ํ / ํด๋ฌ์คํฐ (โฆ) ๊ฐ์ ์ฝ์ (โฆ), (โฆ), (โฆ), (โฆ), (โฆ), (โฆ)
์ด ๋ฒค์น ๋งํฌ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ heap
๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
6 38 0ms 31ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
string str = @"insert into heap (group, currency, year, period, domain_id, mtdAmount, mtdAmount, ytdAmount, amount, ytd_restated, restated, auditDate, auditUser)
values";
for (int x = 0; x < 999; x++)
{
str += string.Format(@"(@id + {0}, 'EUR', 2012, 2, 0, 100, 100, 1000 + @id,1000, 1000,1000, current_timestamp, 'test'), ", x);
}
str += string.Format(@"(@id, 'CAD', 2012, 2, 0, 100, 100, 1000 + @id,1000, 1000,1000, current_timestamp, 'test') ", 1000);
cmd.CommandText = str;
- 912 ๋ฌธ์> 0 CPU
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1000 1000 1000 -
Cpu 15 2138 25 0.02500
Reads 5212 7069 6328 6.32837
Writes 16 34 22 0.02222
Duration 1.6336 293.2132 4.4009 0.00440
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
์ด ๋ฒค์น ๋งํฌ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ clust
๊ฐ์ต๋๋ค.
rows reads CPU Elapsed
----- ----- ----- --------
6 50 0ms 18ms
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
string str = @"insert into clust (group, currency, year, period, domain_id, mtdAmount, mtdAmount, ytdAmount, amount, ytd_restated, restated, auditDate, auditUser)
values";
for (int x = 0; x < 999; x++)
{
str += string.Format(@"(@id + {0}, 'EUR', 2012, 2, 0, 100, 100, 1000 + @id,1000, 1000,1000, current_timestamp, 'test'), ", x);
}
str += string.Format(@"(@id, 'CAD', 2012, 2, 0, 100, 100, 1000 + @id,1000, 1000,1000, current_timestamp, 'test') ", 1000);
cmd.CommandText = str;
- 946 ๊ฐ์ ๋ช ๋ น๋ฌธ์> 0 CPU๋ฅผ ๊ฐ์ต๋๋ค.
Counter Minimum Maximum Average Weighted
--------- ------- ---------- ------- ---------
RowCounts 1000 1000 1000 -
Cpu 15 2403 21 0.02157
Reads 6810 8997 8412 8.41223
Writes 16 25 19 0.01942
Duration 1.5375 268.2571 6.1463 0.00614
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
๊ฒฐ๋ก
ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค์ ๋น ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค (๋น ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๋์)๋ก ํ ์ด๋ธ์ ์ก์ธ์ค ํ ๋ ๋ ๋ง์ ๋ ผ๋ฆฌ์ ์ฝ๊ธฐ๊ฐ ์งํ๋์ง๋ง ์ฑ๋ฅ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- SELECT ๋ฌธ์ ๋น๊ต ๊ฐ๋ฅ
- ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด UPDATE ๋ฌธ์ด ๋ ๋น ๋ฆ ๋๋ค.
- ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด DELETE ๋ฌธ์ด ๋ ๋น ๋ฆ ๋๋ค.
- ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด INSERT ๋ฌธ์ด ๋ ๋น ๋ฆ ๋๋ค.
๋ฌผ๋ก ๋ด ๋ฒค์น ๋งํฌ๋ ํน์ ์ข ๋ฅ์ ํ ์ด๋ธ๊ณผ ๋งค์ฐ ์ ํ๋ ์ฟผ๋ฆฌ ์งํฉ์ผ๋ก ๋งค์ฐ ์ ํ๋์์ง๋ง์ด ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ด๋ธ์์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ค์ ๋ก ํญ์ ๋ ๋ซ๋ค๋ ๊ฒ์ ์ด๋ฏธ ์์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ :
์ถ๊ฐ ๋ ๊ฒฐ๊ณผ์์ ๋ณผ ์ ์๋ฏ์ด ์ ํ๋ ํ ์คํธ์ ๋ํ ๊ฒฐ๋ก ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ํํ์ง ์์์ต๋๋ค.
๊ฒฐ๊ณผ๋ ์ด์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค์ ์ด์ ์ด์๋ ์ ์ผํ ๋ช ๋ น๋ฌธ์ด ์ ๋ฐ์ดํธ ๋ช ๋ น๋ฌธ์์ ๋ํ๋ ๋๋ค. ๋ค๋ฅธ ์ธ๋ฑ์ค๋ ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค๊ฐ์๋ ํ ์ด๋ธ์์ ์ฝ 30 % ๋๋ฆฝ๋๋ค.
ํ ๋ ํด๋ฌ์คํฐ์ ๋ํ ์ฟผ๋ฆฌ ๋น ๊ฐ์ค์น ์ง์ ์๊ฐ์ ํ์ ํ ์ผ๋ถ ์ถ๊ฐ ์ฐจํธ.
๋ณด์๋ค์ํผ insert ๋ฌธ์ ์ฑ๋ฅ ํ๋กํ์ ๋งค์ฐ ํฅ๋ฏธ ๋กญ์ต๋๋ค. ๊ธ์ฆ์ ์๋ฃํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ช ๊ฐ์ง ๋ฐ์ดํฐ ์์๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
2011 ๋ 3 ์ 9 ์ผ ์ ๋ฐ์ดํธ ์ข ๋ฃ .
๋ต๋ณ
์ธ๋ฑ์ฑ์ ์ฌ์ โ โ ํด๋ฒ๋ฆฌ ํธ๋ฆฝ์ผ๋ก ์์ฃผ ๋ฅ์ํ๊ฒ ๊ทธ๋
๋ฅผ ํฌ์คํธ ๋ธ๋ก๊ทธ์ ์ค๋ช
ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค ํ ๋ก ์ โฆ ๊ณ์ ๊ฑฐ์ ์๋๊น์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ํด๋ฌ์คํฐ๋ง ํค๋ฅผ ๊ฐ์ง, ๋ชจ๋ ์์
โ ๋จ์ง SELECT
.
์ข์ ํด๋ฌ์คํฐ๋ง ํค (์ ๐ ๋ฅผ ์ ํํ๊ธฐ ๋งํ๋ฉด SELECT๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋ฌ์คํฐ ๋ ํ
์ด๋ธ์ ๋นํด ํ์์ ๋๋ ค์ง๋๋ค INT IDENTITY
. GUID ๋๋ ๊ฐ๋ณ ๊ธธ์ด ๊ตฌ์ฑ ์์๊ฐ ๋ง์ ๋ณตํฉ ํค์ ๊ฐ์ด ์ค์ ๋ก ๋์ ํด๋ฌ์คํฐ๋ง ํค๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ด ๋ ๋น ๋ฅผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋์ด ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋์์ธ์ ์ฒ์๋ถํฐ ์ ๋ฆฌํด์ผํฉ๋๋ค.
๋ฐ๋ผ์ ์ผ๋ฐ์ ์ผ๋ก ํ์ ์ด๋ค ์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์ฉํ๊ณ ์ ์ฉํ ํด๋ฌ์คํฐ๋ง ํค๋ฅผ ์ ํํ๋ฉด ๋ชจ๋ ๋ฉด์์ ์ด์ ์ด ์์ต๋๋ค.
๋ต๋ณ
๊ทธ๋ฅ ๊ฑด๋ ์ฐ์ฐํ ์ด ๊ธ ์ฃผ์์ด ์ง๋ฌธ์ ๊ทธ ์กฐ ์ฅ์์ํฉ๋๋ค. ์๋์ ๊ทธ์ ๊ฒฐ๋ก ์ ๋ถ์ฌ ๋ฃ์๋ค.
์ธ๋ฑ์ค์ ๊น์ด๊ฐ 4 ์ธ ํ ์ด๋ธ์ ๊ณ ๋ คํ์ฌ ๋ฃจํธ ๋ ๋ฒจ, 2 ๊ฐ์ ์ค๊ฐ ๋ ๋ฒจ ๋ฐ ๋ฆฌํ ๋ ๋ฒจ์ด ์์ต๋๋ค. ์ธ๋ฑ์ค๋ ๋จ์ผ ์ธ๋ฑ์ค ํค (ํค ๊ฒ์ ์์)๋ฅผ ๊ฒ์ํ์ฌ 4 ๊ฐ์ ๋ ผ๋ฆฌ IO (LIO)๋ฅผ ์์ฑํฉ๋๋ค. ์ด์ ํค ์กฐํ๊ฐ ํ์ํ์ง ๊ณ ๋ คํ์ญ์์ค. ํ ์ด๋ธ์ ๊น์ด 4์ ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค๊ฐ์๋ ๊ฒฝ์ฐ ๊ฐ ํค ์กฐํ๋ 4 ๊ฐ์ LIO๋ฅผ ์์ฑํฉ๋๋ค. ํ ์ด๋ธ์ด ํ์ธ ๊ฒฝ์ฐ ๊ฐ ํค ์กฐํ๋ 1 ๊ฐ์ LIO๋ฅผ ์์ฑํฉ๋๋ค. ์ค์ ๋ก, ํ์ ๋ํ ํค ์กฐํ๋ 4 : 1 LIO ๋น์จ์ ๊ฐ๊น์ด ๊ณณ์ด ์๋๋ผ ํด๋ฌ์คํฐ ๋ ์ธ๋ฑ์ค์ ๋ํ ํค ์กฐํ๋ณด๋ค ์ฝ 20-30 % ์ ๋ ดํฉ๋๋ค.