View Full Version : یکپارچه سازی دو table با داده های تکراری
sanaz.dadkhah
پنج شنبه 20 مهر 1391, 11:45 صبح
سلام من دو تا table با فیلد های یکسان دارم و میخاهم که اینها را در یک table دخیره کنم که در اصل ان table مرجه من باشد و دیگر نخاهم به هر دوی آنها برای جستجو رجوع کنم
بهترین راه برای یکپارچه سازی این دو table چیست؟
حمیدرضاصادقیان
پنج شنبه 20 مهر 1391, 16:16 عصر
سلام.
یکی از راهها این هست که ابتدا رکوردهای یک جدول رو درون اون درج کنید و برای درج رکوردهای دوم نیز با یک کنترل ساده مشخص کنید که رکورد تکراری رو در جدول جدید درج نکنه.
راه دیگر این هست که توسط Union این دو جدول رو باهم ترکیب کرده که رکوردهای تکراری حذف شوند و نتیجه رو در جدول جدید اضافه کنید.
sanaz.dadkhah
پنج شنبه 20 مهر 1391, 16:53 عصر
جناب آقای صادقیان
1-به نظر شما table جدید بسازم یا نه با استفاده از select هر زمان چک کنم؟
2- در صورتی که نظر شما برای ساخت table است میشه لطف کنید و بگید در صورتی که استفاده از یونیون بهتر است چگونه عمل کنم؟
در صورتی که راه حل بهتری میدونید ممنون میشم راهنمایی کنید
pashna
پنج شنبه 20 مهر 1391, 22:03 عصر
سلام، من جدول مشابهی دارم و از union استفاده کردم. بنظرام راه بدی نیست. ضمنا جدول من نسبتا بزرگ هم هست، ۱۰-۱۲ میلیون row داره
حمیدرضاصادقیان
پنج شنبه 20 مهر 1391, 22:28 عصر
کلا اگر یک جدول بشه و از این به بعد روی یک جدول جستجو کنید خیلی بهینه تر است.زیراد میزان I/O به شدت کاهش پیدا خواهد کرد همچنین با قراردادن یک ایندکس روی جدول فوق میتوانید از سرعت بالایی در جستجوها بهره ببرید. به غیر از این یک عمل Join بین جداولتون برای جستجو بین دوجدول نیز حذف خواهد شد. مورد بعدی اینکه هنگام درج این مشکل ایجاد نمیشه که کاربر بخواهد رکورد تکراری ایجاد کنه.
استفاده از Union رو عرض کردم برای ابتدای امر که بخواهید داده ها رو به جدول اصلی منتقل کنید و اگر بخواهید همیشه از Union استفاده کنید فکر نمیکنم نسبت به راه حل اولی ارجحیت داشته باشه.
حمیدرضاصادقیان
پنج شنبه 20 مهر 1391, 23:38 عصر
اینجا (http://msdn.microsoft.com/en-us/library/ms180026.aspx) رو ببینید
tooraj_azizi_1035
جمعه 28 مهر 1391, 12:49 عصر
شما با دستور MERGE در SQL Server می تونید با بهترین Perfomance دو جدول رو با هم ادغام کنید. با این کار شما نیازی به کنترل اینکه داده های رکورد مبدا در جدول مقصد وجود دارد یا خیر را به دستور MERGE واگذار می کنید.
همین Merge رو در Books Online سرچ کنید.
davar_sadeghi
یک شنبه 30 مهر 1391, 13:34 عصر
بنظره من از روش Merge استفاده کن در موردش تحقیق کن کلی از ای به بع کاراتو راه میندازه و چقدر یک برنامه نویسی طولانی رو مثل یک query واست اسون میکنه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.