ورود

View Full Version : گفتگو: قابلیتهای جدید نسخه SQL Server 2011 Code named Denali



حمیدرضاصادقیان
شنبه 18 دی 1389, 14:06 عصر
سلام دوستان.
قصدم این هست در این تاپیک در مورد قابلیتهای جدیدی که به نسخه SQL Server 2011 اضافه شده است صحبت کنیم.
امیدوارم دوستانی که تمایل دارند یاری کنند و به جای لینک مستقیم سعی کنند ترجمه مقالات رو قرار بدند که همه بتوانند استفاده کنند.
باتشکر.

tooraj_azizi_1035
شنبه 18 دی 1389, 14:37 عصر
با سلام خدمت اساتید،

از قسمت What's New این تاپیک رو انتخاب کردم و می خوام در حد توان در اینجا قرار بدم دوستان در تکمیل کمک کنند.
مسیر دقیق: http://msdn.microsoft.com/en-us/library/ff878058(v=SQL.110).aspx

عنوان Sequence Objects

فکر می کنم طی درگیری هایی که کاربران با Identity Column داشتند، در گیری بر سر اینکه با حذف و اضافه کردن رکورد در ترتیب مقادیر Identity شکاف بوجود نیاید یا برای شروع مجدد مجبور به RESET نباشیم، مایکروسافت ایده
Sequence Objects رو روی کار آورده.
یک sequence شئی user-defined است که ترتیبی از مقادیر عددی را بر طبق مشخصاتی که هنگام ایجاد تعیین می شود تولید می کند. ترتیب مقادیر عددی به شکل نزولی یا صعودی است و با یک گام معین به جلو می رود و ممکن است چرخه آن بر حسب تقاضا مجدداً استفاده شود (may cycle (repeat) as requested).

sequence ها بر خلاف ستون های identity به جداول اختصاص ندارند. یک Application با رجوع به شیء sequence مقدار بعدی اش را دریافت می کند. رابطه بین جدول و sequence توسط Application کنترل می شود.

یک sequence مستقل از جداول و با استفاده از دستورالعمل CREATE SEQUENCE ایجاد می شود. Option های این دستور به شما امکان تعیین مقدار گام افزایش، Max، Min ، مقدار شروع ، شروع مجدد خودکار و caching جهت بهبودی کارایی را می دهد.

برخلاف مقادیر ستون identity که هنگام درج ردیف ایجاد می شوند، یک Application می تواند مقدار ترتیبی بعدی را قبل از درج رکورد با فراخوانی تابع NEXT VALUE FOR (http://msdn.microsoft.com/en-us/library/ff878370(v=SQL.110).aspx)بدست آورد. عدد ترتیبی تولید شده وقتی NEXT VALUE FOR صدا زده می شود اختصاص می یابد حتی اگر عدد در جدول درج نشود.

در سناریو های زیر از شیء sequence به جای ستون Identity استفاده کنید:

Application نیازمند دریافت عدد بعدی است بدون اینکه عدد در جدول درج شود.
Application نیازمند این است که یک سری یگانه از اعداد را میان چندین جدول یا چندین ستون از یک جدول به اشتراک بگذارد.
Application باید سری اعداد را از نو ایجاد کند وقتی به یک عدد خاص برسد. مثلاً وقتی از 1 تا 10 به 10 رسید دوباره از 1 شروع کند.
...
محدودیت ها

بر خلاف ستون های Identity، که مقادیرشان قابل تغییر نیست، مقادیر Sequence پس از درج در جدول به طور خودکار در برابر تغییر محافظت نمی شوند. برای جلوگیری از اعمال تغییر در مقادیر Sequence از یک Update Trigger برای رول بک تغییرات استفاده کنید.
یکتابودن به طور خودکار به مقادیر Sequence تحمیل نمی شود. امکان استفاده مجدد از مقادیر Sequence در طراحی تعیین می شود. با گذاشتن یک اندیس یکتا این یکتا بودن تضمین می شود.

مثال مایکروسافت:

CREATE SEQUENCE Test.CountBy1
START WITH 1
INCREMENT BY 1 ;


درج:


INSERT Test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.CountBy1, 'Tire', 2) ;
INSERT test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.CountBy1, 'Seat', 1) ;
INSERT test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.CountBy1, 'Brake', 1) ;

دوستان می شه جمله رو ترجمه کرد اما باید در درکش کمک کنید.

دوستان نظر بدن سوالاتی هم دارم که بعد از جواب ادامه می دم.

حمیدرضاصادقیان
شنبه 18 دی 1389, 15:12 عصر
یکی از قابلیتهای جالبی که به این نسخه اضافه شده است این هست که Management Studio بسیار شبیه به Visual Studio 2010 شده است.
در زیر میتونید عکس اونو ببینید.
مورد دوم در قسمت نصب آن هست. که قبلا هنگام نصب ، اگر مثلا Net 3.5 نصب نبود در یکی از مراحل نصب شروع به نصب آن می کرد.
ولی الان خارج از Package نصب اگر نصب نباشد به صورت جداگانه شروع به نصب میکند و داخل Package نصبی این نسخه نمی باشد.

vcldeveloper
شنبه 18 دی 1389, 15:58 عصر
مایکروسافت ایده
Sequence Objects رو روی کار آورده.
با این توضیحات شما، ظاهرا Sequence Object نام دیگه ایی برای Generator هست، که در بعضی بانک های اطلاعاتی مثل Firebird وجود داره.

tooraj_azizi_1035
یک شنبه 19 دی 1389, 09:51 صبح
با Firebird آشنا نیستم.

vcldeveloper
یک شنبه 19 دی 1389, 11:37 صبح
با Firebird آشنا نیستم.
http://www.firebirdsql.org/manual/generatorguide-basics.html

ASKaffash
یک شنبه 19 دی 1389, 11:43 صبح
با سلام خدمت اساتید،

از قسمت What's New این تاپیک رو انتخاب کردم و می خوام در حد توان در اینجا قرار بدم دوستان در تکمیل کمک کنند.
مسیر دقیق: http://msdn.microsoft.com/en-us/library/ff878058(v=SQL.110).aspx

عنوان Sequence Objects

فکر می کنم طی درگیری هایی که کاربران با Identity Column داشتند، در گیری بر سر اینکه با حذف و اضافه کردن رکورد در ترتیب مقادیر Identity شکاف بوجود نیاید یا برای شروع مجدد مجبور به RESET نباشیم، مایکروسافت ایده
Sequence Objects رو روی کار آورده.
یک sequence شئی user-defined است که ترتیبی از مقادیر عددی را بر طبق مشخصاتی که هنگام ایجاد تعیین می شود تولید می کند. ترتیب مقادیر عددی به شکل نزولی یا صعودی است و با یک گام معین به جلو می رود و ممکن است چرخه آن بر حسب تقاضا مجدداً استفاده شود (may cycle (repeat) as requested).

sequence ها بر خلاف ستون های identity به جداول اختصاص ندارند. یک Application با رجوع به شیء sequence مقدار بعدی اش را دریافت می کند. رابطه بین جدول و sequence توسط Application کنترل می شود.

یک sequence مستقل از جداول و با استفاده از دستورالعمل CREATE SEQUENCE ایجاد می شود. Option های این دستور به شما امکان تعیین مقدار گام افزایش، Max، Min ، مقدار شروع ، شروع مجدد خودکار و caching جهت بهبودی کارایی را می دهد.

برخلاف مقادیر ستون identity که هنگام درج ردیف ایجاد می شوند، یک Application می تواند مقدار ترتیبی بعدی را قبل از درج رکورد با فراخوانی تابع NEXT VALUE FOR (http://msdn.microsoft.com/en-us/library/ff878370(v=SQL.110).aspx)بدست آورد. عدد ترتیبی تولید شده وقتی NEXT VALUE FOR صدا زده می شود اختصاص می یابد حتی اگر عدد در جدول درج نشود.

در سناریو های زیر از شیء sequence به جای ستون Identity استفاده کنید:

Application نیازمند دریافت عدد بعدی است بدون اینکه عدد در جدول درج شود.
Application نیازمند این است که یک سری یگانه از اعداد را میان چندین جدول یا چندین ستون از یک جدول به اشتراک بگذارد.
Application باید سری اعداد را از نو ایجاد کند وقتی به یک عدد خاص برسد. مثلاً وقتی از 1 تا 10 به 10 رسید دوباره از 1 شروع کند.
...
محدودیت ها

بر خلاف ستون های Identity، که مقادیرشان قابل تغییر نیست، مقادیر Sequence پس از درج در جدول به طور خودکار در برابر تغییر محافظت نمی شوند. برای جلوگیری از اعمال تغییر در مقادیر Sequence از یک Update Trigger برای رول بک تغییرات استفاده کنید.
یکتابودن به طور خودکار به مقادیر Sequence تحمیل نمی شود. امکان استفاده مجدد از مقادیر Sequence در طراحی تعیین می شود. با گذاشتن یک اندیس یکتا این یکتا بودن تضمین می شود.

مثال مایکروسافت:

CREATE SEQUENCE Test.CountBy1
START WITH 1
INCREMENT BY 1 ;


درج:


INSERT Test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.CountBy1, 'Tire', 2) ;
INSERT test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.CountBy1, 'Seat', 1) ;
INSERT test.Orders (OrderID, Name, Qty)
VALUES (NEXT VALUE FOR Test.CountBy1, 'Brake', 1) ;

دوستان می شه جمله رو ترجمه کرد اما باید در درکش کمک کنید.

دوستان نظر بدن سوالاتی هم دارم که بعد از جواب ادامه می دم.

سلام
خیلی عالی شد تازه بعد از مدتها شبیه سازی Sequence در اراکل اتفاق افتاد