ورود

View Full Version : حذف رکوردهای تکراری



amir.azimi2000
یک شنبه 29 فروردین 1389, 10:05 صبح
با سلام .

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

1. ساختن جدول جدید با ساختار جدول قبلی بهمراه یک شاخص که ترکیبی از کلیه فیلدهاست .
2. از جدول قدیمی رکوردها از ابتدا خوانده و در جدول جدید جستجو میکنم ، اگر وجود نداشت رکورد جدید را ایجاد و اطلاعات را جایگزین میکنم سپس به جدول مبدا بازگشته و یک رکورد جلو میروم و به همین ترتیب تا آخر .

آیا راه سریعتر و بهینه تری سراغ دارید ؟

frahimi
یک شنبه 29 فروردین 1389, 14:28 عصر
ابتدا یک ایندکس مرکب از فیلدها به صورت یونیک بساز بعد با دستور copy to آن را در یک فایل دیگر کپی کن

arashkhaan2002
دوشنبه 30 فروردین 1389, 00:55 صبح
میتونید با دستور sql همه فیلدها رو در یک فیلد جدید ریخته بر اساس اون فیلد گروپ کنید .

amir.azimi2000
دوشنبه 30 فروردین 1389, 09:09 صبح
با سلام .
با تشکر از عنایت دوستان .
جناب arashkhaan2002 (http://barnamenevis.org/forum/member.php?u=34731) نمیخواهم به صورت منطقی رکوردها یونیک باشند بلکه به صورت فیزیکی هم یونیک شوند .
فکر میکنم پیشنهاد جناب frahimi (http://barnamenevis.org/forum/member.php?u=23567) منطقی باشه .
باز هم ممنون .

amir.azimi2000
سه شنبه 14 اردیبهشت 1389, 08:50 صبح
با سلام مجدد .
متاسفانه مشکل حل نشد ولی تجربه ای جدید به دست آمد مبنی بر اینکه به هنگام ساخت شاخص ترکیبی در جداول بزرگ به محدودیت فاکس پرو برخورد می کنیم لینک زیر را ببینید :
http://barnamenevis.org/forum/showthread.php?t=218389
حالا اگر برای حذف رکوردهای تکراری از جدول و یا همان یونیک کردن فیزیکی رکوردها راهی سراغ دارید بفرمایید .
با تشکر

محمد سلیم آبادی
سه شنبه 14 اردیبهشت 1389, 16:58 عصر
با سلام مجدد .
متاسفانه مشکل حل نشد ولی تجربه ای جدید به دست آمد مبنی بر اینکه به هنگام ساخت شاخص ترکیبی در جداول بزرگ به محدودیت فاکس پرو برخورد می کنیم لینک زیر را ببینید :
http://barnamenevis.org/forum/showthread.php?t=218389
حالا اگر برای حذف رکوردهای تکراری از جدول و یا همان یونیک کردن فیزیکی رکوردها راهی سراغ دارید بفرمایید .
با تشکر

سلام دوست عزیز،
گرچه نمی دانم دستورات MS foxpro چقدر به SQL Server نزدیک هستند ولی این مقاله ای که جدیدا نوشتم را به شما پیشنهاد می کنم. چون به روشهای استاندارد زبان SQL پرداخته شده امید وارم بتوننه کمکتون کنه:
http://www.30sharp.com/ShowArticle.aspx?nid=13&did=209&AuthorID=11