PDA

View Full Version : تعریف فایلهای جانبی (NDF) اطلاعاتی رون بانکهای اطلاعاتی و ذخیره تصاویر در آن



m0rteza
سه شنبه 06 مرداد 1388, 18:29 عصر
در مورد تعریف فایلهای جانبی (NDF) اطلاعاتی رون بانکهای اطلاعاتی و ذخیره تصاویر در آن ، کمی راهنمایی کنید

amin_alexi
چهارشنبه 07 مرداد 1388, 16:27 عصر
سلام
هر Database میتونه چندین FileGroup داشته باشه
و هر FileGroup می تونه شامل چندین فایل NDF باشه
فکر کنم شما می خواین یک فایل NDF داشته باشی که Imageهات توی اون فایل ذخیره بشه !
یک مثال : ساخت یک DataBase که چندین DataFile و FileGoup داره و چندین LogFile داره !
مثال خود
که تو می تونی هر چند تا که خواستی FileGroup بسازی !

CREATE DATABASE [ImageStore] ON PRIMARY
( NAME = N'ImageStore', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\ImageStore.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),
FILEGROUP [ImageFG]
( NAME = N'ImageStore_image', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\ImageStore_image .ndf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'ImageStore_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\ImageStore_log.l df' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
یک DataBase با یک FileGroup و یک فایل NDF

حالا باید در جدولی که می سازی بگی که اطلاعات image بره در اون FileGroup مورد نظر (ImageFG)بشینه !


create table students2(
f nvarchar(20) null,
l nvarchar(20) not null,
pic varbinary(max)) on [primary] textimage_on ImageFG
که این کار با دستور textimage_on در آخر دستور CreateDataBase انجام میشه !
نکته : در جدول باید فیلدی از نوع varbainary(max ) ویا مدلهای مشابه برای Image داشته باشی

m0rteza
چهارشنبه 07 مرداد 1388, 18:06 عصر
واقعا ممنون . تشکر کافی نبود .

من اینجوری فهمیدم
شما اول اودید یک گروه تشکل دادید . و یه چیز شبیه فایل Data و Log ایجاد کردید .
حالا این دوتا رو به این گروه نسبت دادید
حالا هنگام ایجاد تیبل میگین به این گروه برو و ذخیره بشه.
درسته
؟

AminSobati
چهارشنبه 07 مرداد 1388, 22:48 عصر
سلام دوست عزیزم،
Log File به خاطر معماری که داره، نیاز به Filegroup نداره و اصلا امکان قراردادنش در Filegroup هم نیست، پس فقط Data File در Filegroup میره. از طرفی شما نمیتونین بگین این جدول رو کدوم فایل ساخته بشه، بلکه میتونین بگین روی کدوم Filegroup ساخته بشه. حالا اگر اون Filegroup تنها یک فایل به عضویت داشته باشه، پس قطعا جدول شما روی اون فایل هست. ولی اگر دو یا چند فایل عضو یک Filegroup باشند، اطلاعات جدول طبق الگوریتمی روی فایلها پخش میشه. به یاد داشته باشین که وقتی چند فایل عضو یک Filegroup هستند، از دید SQL Server مثل یک فایل یکپارچه تلقی میشن پس اهمیتی به پراکنده بودن اطلاعات روی اون نمیدیم

m0rteza
پنج شنبه 08 مرداد 1388, 01:28 صبح
به یاد داشته باشین که وقتی چند فایل عضو یک Filegroup هستند، از دید SQL Server مثل یک فایل یکپارچه تلقی میشن پس اهمیتی به پراکنده بودن اطلاعات روی اون نمیدیم

یک سوال تو ذهنم پیش اومد . ما برای هر data file یک گروه تشکیل بدیم بهتره ؟ یا همه data file ها توی یک گروه باشه؟
میدونم جواب این سوال رو دادید ولی من متوچه نشدم . ممنون

amin_alexi
پنج شنبه 08 مرداد 1388, 16:08 عصر
حالا این دوتا رو به این گروه نسبت دادید
حالا هنگام ایجاد تیبل میگین به این گروه برو و ذخیره بشه.
درسته
؟
فقط اطلاعات image من اوی FileGroup ی که ساختم ذخیره میشه بقیه اطلاعات روی Primary میره

یک سوال تو ذهنم پیش اومد . ما برای هر data file یک گروه تشکیل بدیم بهتره ؟ یا همه data file ها توی یک گروه باشه؟
میدونم جواب این سوال رو دادید ولی من متوچه نشدم . ممنون
من برای ایکه بدونم اطلاعات image و Document هام چه قدر شده برای اون یک FileGroup ساختم و فقط یک DataFile روی اون گذاشتم و فقط image و Document هام رو توی اون FileGroup ذخیره کردم .
شما هم ببین چه هدفی داری و کاربردش برات چیه ؟

AminSobati
پنج شنبه 08 مرداد 1388, 20:53 عصر
میتونین یک فایل به FG بدین. الزامی نداره بیش از یکی باشه. اگر بعدا فضا کم اومد و قرار شد از یک درایو دیگه فضا تخصیص بدین، میشه یک NDF جدید ساخت روی اون درایو و عضو FG مورد نظر کرد

m0rteza
سه شنبه 14 مهر 1388, 22:08 عصر
من هدفم اینه که وقتی تعداد تصاویر که ذخیره می شه زیاد شد ، سرعت و کارایی دیتابیسم پایین نیاد . به نظر شما با انجام این کار به این هدفم میرسم ؟


وقتی مسولیت نگهداری تصاویر را به یک دیتا فایل در یک FG میدیم ، در زمانی که از تصاویر استفاده نمی شه سرعت و کارایی دیتابیس بیشتر هست . این جمله من درسته؟

لطفا این خط را توضیح دهید . و اینکه چطور بصورت دستی و با امکانات نرم افزار sql sever یک فیلد را به FG نسبت دهیم
textimage_on یعنی چه؟ یعنی برو هر فیلدی که از نوع image هست به ImageFG اختصاص بده؟

create table students2(
f nvarchar(20) null,
l nvarchar(20) not null,
pic varbinary(max)) on [primary] textimage_on ImageFG