PDA

View Full Version : سوال: ایجاد فایل مجزا برای هر جدول



antisocial
پنج شنبه 24 اردیبهشت 1388, 22:26 عصر
سلام
همونطور که میدونید یک پایگاه داده از دو فایل تشکیل شده و در یکی از اونها جدولها و داده های اون ذخیره میشن.
حالا فرض میکنیم که ما یک جدولی داریم که تعداد رکوردهای توش زیاده و ما میخوایم اونو به صورت یک فایل مجزا در بیاریم .در اوراکل این کار شدنیه میخوام بدونم تو SQL 2008 Enterprise
چه طور میشه این کار رو انجام داد؟:متفکر:
با تشکر

mermaid
شنبه 26 اردیبهشت 1388, 09:13 صبح
من جواب سوال شما رو نمی دونم هر چند که حدس می زنم امکانپذیر نباشه، به عنوان راه حل جایگزین می تونین از انتقال جدول موردنظر به یک بانک اطلاعاتی اختصاصی، و یا ایجاد بانک اطلاعاتی پشتیبان و انتقال اطلاعات در بازه های زمانی از طریق SP استفاده کنید...

اگر نرم افزار مربوط به اون جدول متعلق به خودتون باشه و تغییر اتصالات با بانک خیلی سخت نباشه جدا کردن جدول به عنوان یک بان اطلاعاتی جداگانه گزینه معقول تری هستش... شما زیاد در این مورد توضیح نداده بودین!

amin_alexi
شنبه 26 اردیبهشت 1388, 09:19 صبح
سلام

من جواب سوال شما رو نمی دونم هر چند که حدس می زنم امکانپذیر نباشه، به عنوان راه حل جایگزین می تونین از انتقال جدول موردنظر به یک بانک اطلاعاتی اختصاصی، و یا ایجاد بانک اطلاعاتی پشتیبان و انتقال اطلاعات در بازه های زمانی از طریق SP استفاده کنید...

اگر نرم افزار مربوط به اون جدول متعلق به خودتون باشه و تغییر اتصالات با بانک خیلی سخت نباشه جدا کردن جدول به عنوان یک بان اطلاعاتی جداگانه گزینه معقول تری هستش... شما زیاد در این مورد توضیح نداده بودین!
امکان پذیر هست !!!
ما در SQL Server می تونیم برای DataBase چندین فایل داشته باشیم !

USE master;
GO
IF DB_ID (N'Sales') IS NOT NULL
DROP DATABASE Sales;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
FROM master.sys.master_files
WHERE database_id = 1 AND file_id = 1);

-- execute the CREATE DATABASE statement
EXECUTE ('CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
FILENAME = '''+ @data_path + 'SPri1dat.mdf'',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
( NAME = SPri2_dat,
FILENAME = '''+ @data_path + 'SPri2dt.ndf'',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
FILENAME = '''+ @data_path + 'SG1Fi1dt.ndf'',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
FILENAME = '''+ @data_path + 'SG1Fi2dt.ndf'',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
FILENAME = '''+ @data_path + 'SG2Fi1dt.ndf'',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
FILENAME = '''+ @data_path + 'SG2Fi2dt.ndf'',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = '''+ @data_path + 'salelog.ldf'',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )'
);
GO
این یک نمونه واسه ساخت DataBase با چند فایل ....
می تونی واسه اطلاعات بیشتر با کلمات Create Database, Filegroup یه Search بزنی !
و همپنین با Partition هم Search کن !!! :چشمک:

mermaid
شنبه 26 اردیبهشت 1388, 09:32 صبح
سلام

امکان پذیر هست !!!
ما در SQL Server می تونیم برای DataBase چندین فایل داشته باشیم !
این یک نمونه واسه ساخت DataBase با چند فایل ....
می تونی واسه اطلاعات بیشتر با کلمات Create Database, Filegroup یه Search بزنی !
و همپنین با Partition هم Search کن !!! :چشمک:

راستش درباره چند تکه کردن بانک اطلاعاتی من هم می دونم که میشه... ولی برای جدا کردن یک جدول به تنهایی (که اطلاعاتش رو بشه در یک فایل جدا نگهداری کرد) فکر می کنم هنوز جای بحث باشه! :چشمک:

amin_alexi
یک شنبه 27 اردیبهشت 1388, 12:14 عصر
راستش درباره چند تکه کردن بانک اطلاعاتی من هم می دونم که میشه... ولی برای جدا کردن یک جدول به تنهایی (که اطلاعاتش رو بشه در یک فایل جدا نگهداری کرد) فکر می کنم هنوز جای بحث باشه!
میشه !
با Partition !!

mermaid
یک شنبه 27 اردیبهشت 1388, 12:48 عصر
نمی خوام بحث راه بندازم ولی اونی که شما گفتی بازم برای اینه که اطلاعات مربوط به یک جدول یا بانک اطلاعاتی رو تیکه تیکه کنی روی جاهای مختلف ذخیره کنی! از خودم درنمی یارم، اینم شاهدام:

http://databases.about.com/od/sqlserver/a/partitioning.htm
http://www.databasejournal.com/features/mssql/article.php/3638236/Data-partitioning-in-SQL-Server-2005---Part-I.htm
http://www.databasejournal.com/features/mssql/article.php/3640891/Data-Partitioning-in-SQL-Server-2005---Part-II.htm

به هر حال من از اینکه چیزی که نمی دونم رو متوجه بشم خوشحال میشم :چشمک:

amin_alexi
یک شنبه 27 اردیبهشت 1388, 15:57 عصر
سوال اون بنده خدا !

حالا فرض میکنیم که ما یک جدولی داریم که تعداد رکوردهای توش زیاده و ما میخوایم اونو به صورت یک فایل مجزا در بیاریم در اوراکل این کار شدنیه میخوام بدونم تو SQL 2008 Enterpriseبه هر حال می خوایم یک Table رو در یک فایل مستقل ذخیره کنیم !
الان هم با استفاده از FileGroup ویک DataFile میشه اطلاعات رو در یک فایل مستقل ذخیره کرد که با سایر اطلاعات DataBase در یک فایل نباشه !
و وقتی ایجاد Table می کنیم میگیم که در کدوم FileGroup قرار بگیره ... و هیچ جدول دیگه ای رو در اون FileGroup قرار نمی دیم و به این صورت میشه یک جدول رو در یک FileGroup مستقل قرارداد !

mermaid
یک شنبه 27 اردیبهشت 1388, 16:13 عصر
آها... گرفتم... ببخشین، من آی کیوم از بچگی پایین بوده! :لبخند: