PDA

View Full Version : کار با View ها



mahak_f
شنبه 09 دی 1385, 13:48 عصر
سلام. یه ابهام در استفاده از View ها دارم.
View ای که از روی جدول میسازم با هر بار تغییر بر روی جدول خود بخود به روز رسانی میشه؟
این درسته که استفاده از View برا جدولایی که مدام اطلاعاتشون عوض میشن مفید نیست؟ اخه بانکی که من از روش View ساختم مدام مقدار زیادی اطلاعات جدید بهش وارد یا ازش حذف میشه.

Maryam_y_m
شنبه 09 دی 1385, 14:07 عصر
بله خود به خود به روز میشه
در مورد دوم چیزی که گفتین رو من تا حالا نشنیده بودم. جداول دیتابیس معمولا اطلاعاتشون عوض میشه و ما اصلا view را برای این استفاده میکنیم که اطلاعاتمان را هر طوری که میخواهیم ببینیم

عفت بزرگه
شنبه 09 دی 1385, 14:34 عصر
برای رکورد زیاد روی web ‌یکم در استفادش احتیاط کنید (بار اضافی روی سرور ) . برای برنامه های روی lan ‌هم باز اگر رکوردها خیلی زیاد باشد یکم باید مواظبش بود ولی برای کارهای کوچک یا برنامه های تک کاربره ایرادی درش نیست

mahak_f
شنبه 09 دی 1385, 16:41 عصر
برای رکورد زیاد روی web ‌یکم در استفادش احتیاط کنید (بار اضافی روی سرور ) . برای برنامه های روی lan ‌هم باز اگر رکوردها خیلی زیاد باشد یکم باید مواظبش بود ولی برای کارهای کوچک یا برنامه های تک کاربره ایرادی درش نیست

برنامه تک کاربرست اما هربار کاربر حجم زیادی به بانک وارد میکنه (بین 2 تا 4 MB ) یا از جدول پاک میشه که هر بار باید View ساخته شده از روی جدول اصلی هم به روز شه.
پس با این حساب ایرادی تو استفاده از View نیست.

عفت بزرگه
شنبه 09 دی 1385, 16:50 عصر
بازم مواظب قوانین نانوشته باش . اگر بد بود که اصلا توی sql نبود . اما بعضیها مثلا (شما رو نمیگم ) یکهو view رو یاد میگیره دیگه انتظار داره تمام کارهاش رو با view راه بندازه . یکی دیگه join رو تازه یاد گرفته دیگه میخاد ماشینش رو هم با join جلوی در شرکتش پارک کنه . اگه هر استفاده درست و منطقی باشه . نه مشگلی پیش نمیاد . من یک پروژه دیدم طرف هر جایی که query ‌ثابت داشت یک view براش ساخته بود . آیا این درسته ؟‌

zerobit-ltd
یک شنبه 10 دی 1385, 10:23 صبح
بازم مواظب قوانین نانوشته باش . اگر بد بود که اصلا توی sql نبود . اما بعضیها مثلا (شما رو نمیگم ) یکهو view رو یاد میگیره دیگه انتظار داره تمام کارهاش رو با view راه بندازه . یکی دیگه join رو تازه یاد گرفته دیگه میخاد ماشینش رو هم با join جلوی در شرکتش پارک کنه . اگه هر استفاده درست و منطقی باشه . نه مشگلی پیش نمیاد . من یک پروژه دیدم طرف هر جایی که query ‌ثابت داشت یک view براش ساخته بود . آیا این درسته ؟‌
دوست عزیز، کاربرد view دقیقا همینه.
query های ثابت و پر کاربرد رو با view می نویسن؛
چون اولا cashe میشن، دوما لازم نیست یه query ثابت رو توی چند تا sp نوشت.
یکی از قوانین برنامه نویسی اینه : 1 بار بنویس، چند بار استفاده کن.

whitehat
یک شنبه 10 دی 1385, 13:52 عصر
برنامه تک کاربرست اما هربار کاربر حجم زیادی به بانک وارد میکنه (بین 2 تا 4 MB ) یا از جدول پاک میشه که هر بار باید View ساخته شده از روی جدول اصلی هم به روز شه.
پس با این حساب ایرادی تو استفاده از View نیست.
بهتره یک تذکر کوچک هم در اینجا به صحبت های دوستان اضافه کنم
ما در Sql دو نوع View داریم ،یکی View هایی است که فقط کوئری مر بوط به آن ذخیره شده و با هر بار اجرای آن دستور مورد نیاز اجرا میشه و دیگری View هایی است که دقیقا مانند یک جدول ذخیره می شود، استفاده از اینView ها برای مواردی که جدول دارای حجم تراکنش بالا می باشد توصیه نمی شود.

mahak_f
دوشنبه 11 دی 1385, 09:24 صبح
بهتره یک تذکر کوچک هم در اینجا به صحبت های دوستان اضافه کنم
ما در Sql دو نوع View داریم ،یکی View هایی است که فقط کوئری مر بوط به آن ذخیره شده و با هر بار اجرای آن دستور مورد نیاز اجرا میشه و دیگری View هایی است که دقیقا مانند یک جدول ذخیره می شود، استفاده از اینView ها برای مواردی که جدول دارای حجم تراکنش بالا می باشد توصیه نمی شود.


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

whitehat
دوشنبه 11 دی 1385, 10:41 صبح
فرم نوشتن این دو نوع View با هم تفاوت میکنه؟ چجوری اینکه View از کدوم نوعش باشه رو انتخاب کنم؟ چون همون جور که گفتم جدول برنامم که ازش View ساختم دارای حجم تراکنش بالا ست.
تاحدی فرق میکند، شما باید از view معمولی استفاده کنید که به صورت زیر تعریف می شود، این View در شبیه به یک فایل متنی ذخیره می شود و با هر بار فراخوانی یک بار اجرا می شود(البته SQL برای سرعت بالاتر بهینه سازیهایی نیز انجام می دهد)


Create View View_name
As
...

در مورد view هایی که به صورت Table ذخیره می شوند شما باید دارای شرایط خاصی باشید ، در صورتی که می خواهید در آن مورد بیشتر بدانید Index View را در Book Online جستجو کنید
موفق باشید

mahak_f
سه شنبه 12 دی 1385, 12:51 عصر
سلام. یه ابهام در استفاده از View ها دارم.
View ای که از روی جدول میسازم با هر بار تغییر بر روی جدول خود بخود به روز رسانی میشه؟

درباره این سوالم اینا چیزایین که پیدا کردم. امیدوارم برا بقیه هم مفید باشه:
-برای اینکه View قابل به هنگام سازی باشد نرم افزار پایگاه داده باید بتواند معادل هر سطر و یا هر ستون View را از جدول اصلی پیدا کند.
-همه به هنگام سازیهای جدول پایه بلافاصله روی تمام View های مرتبط با ان اعمال میشوند.
-به طور مشابه اگر دیدی به هنگام سازی شد این تغییرات در جدول پایه نیز اعمال میشود در صورتی که دید شامل کلید اصلی جدول پایه باشد.
-View ها همیشه قابل به هنگام سازی نیستند. View هایی قابل به هنگام سازی هستند که اگر و فقط اگر:
* از DISTINCT هنگام ساخت استفاده نشده باشد.

عبارت FROM باید تنها از یک جدول استفاده کند. اگر این جدول خود یک View باشد این View باید قابل به هنگام سازی باشد.
* در تعریف View از GROUP BY استفاده نشده باشد.
* اگر فیلدی در یک View به کمک یک عملگر یک تابع جمعی و یا یک ثابت به دست امده باشد در ان صورت نمی توان به View رکوردی اضافه کرد و یا تغییری در ان داد. فقط میتوان عمل حذف از View را انجام داد.
* در تعریف دید اگر یک پرس و جوی متداخل وجود داشته باشد و FROM ان پرس و جو به جدولی ارجاع کند که دید روی آن تعریف نشده باشد