PDA

View Full Version : سوال: ارتباط جداول با فایلها بدون در نظر داشتن FileGroups



صمد حسین زاده آزاد
جمعه 05 مهر 1387, 09:28 صبح
سلام
من برای بانکم 2 گروه فایل اولیه و ثانویه و در هر گروه چندین فایل ایجاد کردم .



CREATEDATABASE [PDADB] ONPRIMARY

(
NAME= N'PDADB',FILENAME= N'D:\PDA_1.0\PDA_1.0\DATA\PDADB.mdf',SIZE= 10240KB ,MAXSIZE= UNLIMITED,FILEGROWTH= 1024KB ),

(


NAME= N'HeadLines',FILENAME= N'D:\PDA_1.0\PDA_1.0\DATA\HeadLines.ndf',SIZE= 4096KB ,MAXSIZE= UNLIMITED,FILEGROWTH= 1024KB ),

FILEGROUP [SECONDARY]


(


NAME= N'MidiPedia',FILENAME= N'D:\PDA_1.0\PDA_1.0\DATA\MidiPedia.ndf',SIZE= 51200KB ,MAXSIZE= UNLIMITED,FILEGROWTH= 1024KB )

LOGON


(


NAME= N'PDADB_Log',FILENAME= N'D:\PDA_1.0\PDA_1.0\DATA\PDADB_Log.ldf',SIZE= 2048KB ,MAXSIZE= 2048GB ,FILEGROWTH= 1024KB )

COLLATE Arabic_CI_AI_KS_WS




ولی المانها ( جداول و SP ها رو ) فقط می تونم به گروه فایلها (file groups ) ارتباط بدم ، چطوری میشه جداول رو داخل فایل مشخصی نوشت مثلاً جدول زیر رو چطوری می شه داخل فایل HeadLines نوشت ، تو قسمت خصوصیات جداول هم فقط نشون می ده که جدول تو کدوم گروه فایل جا داده شده !! ؛ تو SSMS که هیچ انتخابی رو برای اینکار پیدا نکردم ...!!!!!!!!!





CREATE TABLE tableName

(.... Fields Details...//)
ON [PRIMARY]// define for Primary filegroup

AminSobati
شنبه 06 مهر 1387, 00:00 صبح
دوست عزیزم،
در SSMS جدول رو Design کنین و کلید Properties در Toolbar رو بزنید. در ایجا میشه Filegroup رو مشخص کرد

صمد حسین زاده آزاد
یک شنبه 07 مهر 1387, 07:59 صبح
سلام
ممنون از جوابتون ،
توسوالم عرض کردم که در ایجاد فایل و فایل گروه و تخصیص جداول به فایل گروه مشکلی ندارم هم با TSQL و هم با SSMS این کارهارو می تونم انجام بدم .
مشکل من اینجاست که توی یک فایلگروه خاص چند تا فایل دارم که می خوام علاوه بر اینکه مشخص کنم جدول به کدوم فایل گروه ربط داره ، فایل مربطه رو هم مشخص کنم ...

AminSobati
یک شنبه 07 مهر 1387, 10:06 صبح
وقتی چند فایل عضو یک FG هستند، از دید SQL Server مثل یک فایل تلقی میشن. لذا شما فقط در صورتیکه میتونین دقیقا فایل مورد نظر برای جدول رو مشخص کنید که اون FG تنها یک فایل به عضویت داشته باشه. اگر چند فایل داشته باشه دیگه شما نمیتونین این رو کنترل کنید بنا به دلیلی که عرض شد

صمد حسین زاده آزاد
دوشنبه 08 مهر 1387, 11:28 صبح
آقای AminSobati عزیز ، خیلی ممنون از اینکه وقت گذاشتید و به سوالم جواب دادید .
سروری که من باهاش کار می کنم 2 تا هارد معمولی داره و من برای اینکه از قابلیت FileGroup استفاده کنم ، 2 تا FileGroup درست کردم و هر کدومشو می خوام تو یک هارد جداگانه قرار بدم ، ولی در مورد فایلها با توضیحی که شما دادید ، من واقعاً گیج شدم ،
* حالا با این توضیحات ایجاد فایلهای متعدد مفید هست یا خیر ؟
* آیا من که می خواستم هر جدولم رو در یک فایل جداگانه درست کنم ، این روش خوبی هست یا نه و آیا این درسته که درون هر فایل گروه یک فایل درست کنم و یک جدول رو بهش اختصاص بدم ؟
نظرتون چیه ؟!؟

AminSobati
دوشنبه 08 مهر 1387, 16:54 عصر
تقسیم کردن اطلاعات در FGها دلایل خودشون رو دارند و معمولا نحوه دسترسی به اطلاعات یک پارامتر مهم در این خصوص هست. به نظر من هر جدول در یک FG جدا واقعا نیاز نیست. شما دو جدولی که زیاد با هم Join میشن در دو FG جدا قرار بدین. ضمنا هر FG یک فایل داشته باشه کفایت میکنه. داشتن بیش از یک فایل در FG دلایل دیگه داره و کاربردش خاصه

MajerajooyeKhallagh
دوشنبه 08 مهر 1387, 23:19 عصر
تقسیم کردن اطلاعات در FGها دلایل خودشون رو دارند و معمولا نحوه دسترسی به اطلاعات یک پارامتر مهم در این خصوص هست. به نظر من هر جدول در یک FG جدا واقعا نیاز نیست. شما دو جدولی که زیاد با هم Join میشن در دو FG جدا قرار بدین. ضمنا هر FG یک فایل داشته باشه کفایت میکنه. داشتن بیش از یک فایل در FG دلایل دیگه داره و کاربردش خاصه

جناب ثباتی
اگر هر کدام از این FG ها بر روی یک درایو جداگانه قرار داده شوند,آیا باعث کندتر شدن اجرای کواری Join بین این دو جدول نمیگردد نسبت به حالتی که آنها را در FG های مختلف و در درایوهای مختلف قرار ندهیم؟(چون من در جایی مطلبی را خونده بودم که تاکید بر این داشت که جداولی را که زیاد به آنها مراجعه شده و در کواری ها زیاد استفاده میشوند را در FG های مختلفی و بر روی درایوهای جداگانه قرار دهیم ,Performance دیتابیس بالاتر میرود که باعث ایجاد سوال برایم شد)

با تشکر

AminSobati
سه شنبه 09 مهر 1387, 20:18 عصر
دوست عزیزم،
ظاهرا پست قبلیم زیاد شفاف نبوده. ببینید: ما میتونیم فقط دو FG مجزا داشته باشیم و جداولی که با هم Join میشن رو روی این دو قرار بدیم. فرضا اگر 3 جدول دارین که زیاد Join میشن، لازم نیست به ازاء هر جدول یک دیسک و یک FG اضافه کنید. آیا اگر 5 جدول داشته باشیم که Join میشن باید 5 دیسک اضافه کنیم؟ پاسخ منفیه!
همون دو FG میتونن استفاده بشن و دو به دو جدولها رو روی FGها قرار بدیم. ضمنا به خاطر داشته باشید فایلهایی که عضو FG میشن، اگر روی یک دیسک ولی دو پارتیشن جدا (مثلا \:C و \:D) باشند، این مزیتی از لحاظ Performance نداره، بلکه C و D باید Physical Diskهای جدا باشند.
بعد از تمام اینها، FG سعی داره به نوعی RAID رو شبیه سازی کنه. اگر سرور شما RAID داره نیازی ندارین به این شکل گروه بندی کنید تا Performance بدست بیارین. ولی شاید نیاز داشته باشین از سایر مزایای اون استفاده ببرین