PDA

View Full Version : سوال: بهینه سازی



e-shahshahani
شنبه 27 مهر 1387, 12:54 عصر
یک جدول هست که دارای تعداد زیادی فیلد عددی و چند فیلد متنی سنگین است. تعداد رکورد های جدول هم زیاد است. select هایی که روی این جدول زده می شود دارای شرط where روی فیلد های عددی است.

حالا اگر ما بیاییم این جدول را به دو تا جدول تقسیم کنیم و فیلد های متنی را از جدول اصلی جدا کنیم و داخل جدول دوم ببریم و بین این دو جدول رابطه یک به یک برقرار کنیم، از نظر بهینه سازی چه تاثیری می تونه داشته باشه؟ موثر هست یا آب در هاون کوفتن است؟
کسی تجربه ای در این زمینه داره؟

با تشکر

mehdi58
شنبه 27 مهر 1387, 16:24 عصر
چرا شما مي خواين این جدول را به دو تا جدول تقسیم کنید؟
مگه شما نمي گين كه " select هایی که روی این جدول زده می شود دارای شرط where روی فیلد های عددی است. " پس با يه Index روي اين فيلد بايستي كارتون راه بيافته .
و البته يه تجربه كوچيك :
اگه اطلاعاتي كه از نوع Binary هست رو قراره توي يه Table با اطلاعات ديگه اي ذخيره كنين بهتره كه اونها رو از Table تون جدا كنين .

e-shahshahani
شنبه 27 مهر 1387, 20:38 عصر
چرا شما مي خواين این جدول را به دو تا جدول تقسیم کنید؟

وقتی حجم جدول اصلی کم بشود، اونوقت select ها خیلی سریع تر انجام می شود. این از لحاظ تئوری میدونم که درسته . می خوام بدونم در عمل چقدر فرقشه؟

AminSobati
شنبه 27 مهر 1387, 22:23 عصر
دوست عزیزم اگر از "فیلد متنی سنگین" Typeهایی مثل ntext یا text یا varchar max منظورتون هستش، میتونین به کمک File Group این کار رو انجام بدین و نیازی به تفکیک جدول و تحمیل Join نیست

e-shahshahani
شنبه 27 مهر 1387, 22:32 عصر
میتونین به کمک File Group این کار رو انجام بدین
باید گفت very good

niloofar norouzi
یک شنبه 28 مهر 1387, 10:34 صبح
سلام
میشه لطف کنید توضیح بدید چه جوری باید از filegroup استفاده کنیم؟(در این مورد)
با تشکر

AminSobati
یک شنبه 28 مهر 1387, 19:16 عصر
سلام،
با فرض اینکه FG1 و FG2 وجود دارند:


CREATE TABLE T1(
C1 INT,
C2 NTEXT) ON FG1 TEXTIMAGE_ON FG2