Distributed Partitioned Views در SQLServer 2000
با سلام
براساس books online داريم كه به منظور پيادهسازي Distributed Partitioned Views لازم است تا original table به چند member tables شكسته شود به شكلي كه:
1) هر كدام از member tables برشي افقي و كاملاً شبيه به original table باشد؛
2) نام، نوع داده و constrantهاي يكايك فيلدها در member tables بايد شبيه به هم باشد؛
3) در تمامي member tablesها Primary keyبايد روي يك فيلد ساخته شده باشد؛
4) در هيچكدام از member tablesها ايندكس روي فيلد محاسباتي وجود نداشته باشد؛
5) هر فيلد فقط يكبار در View استفاده شده باشد؛
6)تمامي فيلدهاي member tables در view استفاده شده باشند؛
7) و ...
با اين حال و براي پيادهسازي اين كار در يك Databaseي كه original table مورد نظر روي يك سرور قرار دارد و قرار است تا member tablesها هم همگي روي همان سرور قرار بگيرند، با سه سئوال زير مواجه شدهام. آيا ممكن است دوستان كمك كنند:
اول
بنا به example اشاره شده در books online مثل اينكه بايد member tablesها روي سرورهاي جداگانه باشند. براي مواقعي كه ميخواهيم member tables روي يك سرور باشند آيا بايد 1) يك سرور مجازي درست كرد، 2) يا instantهاي مختلف ايجاد نمود 3) و يا از filegroupهاي مستقل استفاده كرد 4)و يا اينكه اصلاً به هيچكدام از اين كارها نياز نيست. و فقط كافيست member tablesها را مانند شيوه ساخت بقيه tableها ايجاد كرد.
دوم
در مثال اشاره شده در books online با گذاشتن يك chek روي primary key محدودههاي مورد نظر براي هر member table تعيين و مقرر شده است. اگر ستون primary key از نوع identity باشد آيا بازهم نياز به گذاشتن اين چك هست يا نه؟
سوم
در يكي از نكات مطرح شده در books online آمده است كه امكان Data Modification در Distributed Partitioned View زماني فراهم خواهد بود كه نسخه SQL Server نصب شده Enterprise Edithin و يا Developer Edition باشد. با اين حال براي من كه سرورم Personal Edition است، كلاً موضوع Distributed Partitioned View منتفي خواهد بود؟
ممنونم
نقل قول: Distributed Partitioned Views در SQLServer 2000 Personal Edition
نقل قول: Distributed Partitioned Views در SQLServer 2000 Personal Edition
با سلام
لينك استاد ارجمند، جناب آقاي ثباتي را ديدم خيلي مفيد بود در ضمن دو لينك زير هم مطالب خوبي داشتند:
http://www.microsoft.com/technet/pro...t10/c3861.mspx
http://www.microsoft.com/technet/pro...rt5/c1861.mspx
و اما سئوالات جديدتر:
1) من به دنبال پيادهسازي Local Partitioned View هستم ولي براي پياده سازي آن سه راهكار پيش رو دارم:
الف) هم امكان ايجاد member tableها روي يك Filegroup و حتي يك instanse وجود دارد؛
ب) هم امكان اينكه هر member table روي يك Filegroup جداگانه ولي در يك instanse هست؛
ج) هم امكان اينكه هر member table روي يك member database ولي در يك instanse باشد.
با توجه به اينكه هدف بنده از اين كار گذشته از افزايش سرعت و امكان مديريت و نگهداري ديتابيس است ولي در كدام يك از حالتهاي جداگانه بهتر ميتوان قسمتي از اطلاعات كه يك پارتيشن مستقل تعريف شده (يك member table) و به دليل فرضاً قديمي شدن اطلاعات آن از ديتابيس كنار گذاشت و يا اينكه آنرا در Backupگيري مشاركت نداد. به عبارت سادهتر آنرا به آرشيو اطلاعات قديمي منتقل كرد.
2) جدولي كه بنا دارم آنرا پارتيشنبندي كنم، با چند تا از جداول ديگر ارتباط دارد. اگر هر member table را به روي يك batabase جداگانه ببرم آيا ميتوانم اين Relationها را از طريق View در original database با اين جداول كه همگي در همين ديتابيس هستند داشته باشم يا اينكه بايد جداول مرتبط را هم پارتيشن بندي كنم؟
3) اگر تنظيمات را جوري انجام دهيم كه فقط و فقط يك member table خاص درون يك filegroup خاص قرار بگيرد، آيا ميتوان اين Filegroup را در سالهاي بعد از سيستم جدا كرده (از ديتابيس منفك كرد) بدون اينكه به به بقيه ديتابيس اشكالي وارد نشود؟
4) در مستندات فوقالذكر همچنين اشاره شده كه اگر روي member table شما triger وجود داشته باشد، اجرا نخواهد شد، آيا راهي براي ممانعت از اين امر نيست؟
5) در مستندات فوقالذكر همچنين اشاره شده كه اگر ستوني از member table شما identity و يا timestamp تعريف شده باشد، عمل insert ،update در partitioned view انجام نخواهد شد، آيا راهي براي ممانعت از اين امر نيست؟
6) در مستندات فوقالذكر اشاره شده كه اگر در member table شما self-join وجود داشته باشد، انجام insert، update و delete در partitioned view فراهم نخواهد بود.
7) براي استفاده از editionي كه قابليت پشتيباني از partiotioned view را داشته باشد هم SQL Server 2005 Express Edition را در اختيار دارم هم SQL Server 2000 Enterprise Edition را. كدام مناسب تر است؟
ممنون