Change Font Size

Change Screens

Change Profile

Change Layouts

Change Direction

Change Menu Styles

Cpanel
Cuma, 03 Aralık 2010 12:22

Dublicate dataların bulunması ve silinme işlemleri

Yazan&Gönderen  Yusuf Arslan
Bu Öğeyi Derecelendir
(0 Oylar)



Dublicate datalarin bulunmasi kolaydir ama silinmesin de bi takim sikintilar yasayabiliriz.Geçen gün 96 row için 1 saatten fazla çalisan select gördügümde ne oluyor acaba diye düsünmeye basladim.Internette arastirdigim bütün dublicate datalari bulma yöntemini denedim ama gene ise yaramadi.Sonunda söyle bir metot gelistirdim.Dublicate datalarin bulundugu tabloyu referans alarak bir tablo create ettim.Daha sonra bu create ettigim tablodan eslesen row_id leri buldum ve sonraki adimda da onlari sildim.

Simdi bakalim nasil yapmisiz


1-Tabloyu referans alarak kendi tablomuzu yaratma

create table tmp_deneme_yusuf as
select /*+ PARALLEL(a 32) */
kolon_1,kolon_2...kolon_n
,count(1) cnt
from ana_tablo a
group by kolon_1,kolon_2..kolon_n
having count(1) >1

Burda dikkat etmemiz gerekn ana tablo ile referans tablomuz birebir ayni olmalidr.Bu select cümlecigi bize kaç tane dublicate datanin oldugunu gösterir

2-Row idleri bulma

create table tmp_silinecek as
SELECT rowid rid
FROM (SELECT /*+ PARALLEL(a 32) */ a.*,
ROW_NUMBER () OVER (PARTITION BY kolon_1,kolon2..kolon_n ORDER BY ROWID)
AS sira
FROM tmp_deneme_yusuf a)
WHERE sira > 1

3-Son olarak 2. Adimda buldugumuz rowid leri siliyoruz

DELETE /*+ PARALLEL(a 32) */ tmp_deneme_yusuf a
WHERE ROWID IN (select rid from tmp_silinecek)

 

 

Bu yöntemle 5-10 dakika arasinda bütün dublicate datalarimdan kurtulmus oldumJ

 

 

 

 

Son Düzenleme Perşembe, 09 Aralık 2010 08:16
Yusuf Arslan

Yusuf Arslan

Oracle Open Source

1985 Tokat/Reşadiye doğumluyum.İlk-orta-lise hayatını Amasya/Suluova ilçesinde geçirdim.Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra kariyerime Oracle,SAP alanlarında danışmanlık vermek üzere devam etmekteyim. Kullandığım,bildiğim teknolojiler ve diller; SAP BO Oracle BI Applications Oracle Data Mining Oracle BI Reports(http://www.iski.gov.tr/web/statik.aspx?KID=1000717) Oracle Data Integrator Oracle BI Publisher(XML Publisher) Oracle Database 10g Oracle Mapviewer PL/SQL,Java,Oracle JDeveloper,Oracle Forms-Reports,C# Data warehouse process optimization Database system implementation Using encoding for security systems Software development, test and deployment Presentation and communication skills Bu adreslerden de bana ulaşabilirsiniz, [email protected] https://datawarehouse.gen.tr/ http://www.arslanyusuf.blogspot.com/ http://yusufarslaneng.blogspot.com/ http://twitter.com/yusars http://tr.linkedin.com/pub/yusuf-arslan/27/35b/57b

Website: arslanyusuf.blogspot.com/ E-posta: Bu e-Posta adresi istek dışı postalardan korunmaktadır, görüntülüyebilmek için JavaScript etkinleştirilmelidir

Yorum yaz

Make sure you enter the (*) required information where indicated.
Basic HTML code is allowed.

You are here Kategoriler Oracle Dublicate dataların bulunması ve silinme işlemleri