SQL INNER JOIN İLE BİRLEŞTİRİLMİŞ ALANLARI YENİ BİR TABLOYA INSERT/UPDATE İŞLEMİ YAPMAK

yasin85

Altın Üye
Katılım
29 Haziran 2011
Mesajlar
256
Excel Vers. ve Dili
2019, Türkçe
Herkese Merhaba,

INNER JOIN ile yaklaşık 8 tablodan veri birleştirdim ve bu verilerin hepsini yeni bir tabloya insert/update yapmak istiyorum web de yaptığım araştırmada anlaya bileceğim açıklamalı örnek bulamadım bu konuda yardımlarınızı bekliyorum..

Kolay Gelsin..
 
Katılım
12 Aralık 2015
Mesajlar
1,200
Excel Vers. ve Dili
Türkçe Ofis 2007
Ne yapmak istediğinizi tam anlamadım ama birleştirerek elde ettiğiniz bilgileri içeren sorguyu bir tabloya dönüştürebilirsiniz. Bu işlemi devamlı yapacaksanız önce eski tabloyu silmeniz. gerekir.
Kod:
        RecordSetAdı = ConnectionAdı.Execute("Select * INTO SorguAdı FROM YeniTabloAdı;")
 

yasin85

Altın Üye
Katılım
29 Haziran 2011
Mesajlar
256
Excel Vers. ve Dili
2019, Türkçe
Ne yapmak istediğinizi tam anlamadım ama birleştirerek elde ettiğiniz bilgileri içeren sorguyu bir tabloya dönüştürebilirsiniz. Bu işlemi devamlı yapacaksanız önce eski tabloyu silmeniz. gerekir.
Kod:
        RecordSetAdı = ConnectionAdı.Execute("Select * INTO SorguAdı FROM YeniTabloAdı;")

Ali bey,

Öncelikle ilginiz için teşekkür ederim..
Dün gece bir şeyler yapmaya çalıştım oda sabah kontrol ettiğimde kod çalışmıştı onun için işlemin kodunu oluşturdum.
Şuan tek sorunum veri dosyam çok büyük olduğu için günlerce verinin aktarılmasını bekleyeceğim INSERT işlemini hızlandıran bir kod var mı bildiğiniz..

Şuan çalışan kodumun örneği aşağıdaki gibidir.

INSERT --BOŞ OLAN TABLO VERİLERİMİ SIRASI İLE YAZDIM

BOŞTABLO (kolonadı1,kolonadı2)

SELECT DISTINCT --İÇİ DOLU OLAN BİRLEŞTİRDİĞİM TABLOLARIDA

DOLUTABLO.KOLON1,DOLUTABLO.KOLON2

FROM DOLUTABLO

INNER JOIN DOLUTABLO.KOLON1 .... GİBİ DOLDURDUM
 
Katılım
12 Aralık 2015
Mesajlar
1,200
Excel Vers. ve Dili
Türkçe Ofis 2007
Yeni (boş) bir tabloya, değişik tablolardan birleştirerek oluşturduğunuz verileri aktarmak mı istiyorsunuz, yoksa bu oluşturduğunuz verileri halen içinde daha önceki verilerin bulunduğu bir tabloya mı aktarmak istiyorsunuz.
 

yasin85

Altın Üye
Katılım
29 Haziran 2011
Mesajlar
256
Excel Vers. ve Dili
2019, Türkçe
Yeni (boş) bir tabloya, değişik tablolardan birleştirerek oluşturduğunuz verileri aktarmak mı istiyorsunuz, yoksa bu oluşturduğunuz verileri halen içinde daha önceki verilerin bulunduğu bir tabloya mı aktarmak istiyorsunuz.

Ali bey,

(Yeni (boş) bir tabloya, değişik tablolardan birleştirerek oluşturduğunuz verileri aktarmak mı istiyorsunuz)

Evet şuan kodun çalışıyor sadece daha hızlı olması için bir kod var mıdır.
 

yasin85

Altın Üye
Katılım
29 Haziran 2011
Mesajlar
256
Excel Vers. ve Dili
2019, Türkçe
Herkese tekrar merhaba

insert into işlemini yaptığımızda işlemin tamamen bitmesi mi gereklidir yoksa işlemi yaptıkça içeriye eklemeler yapılıyor mu?

Ben bir test yaptım Bu yaptığım testin sonucunda 2000 kalemlik bir veri insert into ettiğimde işlem bittikten sonra ekleme sağlanıyor.

Benim istediğim ise işlem devam ederken verilerin eklenmesi böyle bir şey Mümkün müdür mümkün ise kodu nedir Yardımcı olur musunuz.

Bunun sebebi ise datam çok büyük bundan dolayı işlemde çok uzun sürüyor amacım günlerce insert işleminin kayıt ettiğini görmek her hangi bir aksaklıklar yaşandığında beklediğim günler boşa gitmemesi içindir.

Kolay gelsin..
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Insert işlemi insert yapılan "tablo" yu kilitlemez. Diğer kullanıcılar da insert veya select yapabilir. İki kullanıcını update veya delete komutu aynı kayıt üzerinde karşılaşırsa, sunucu (sql server sistemi kullandığınızı varsayıyorum) istemleri sırayla yapacağından (transaction wait) deadlock da yaşanmaz.
 

yasin85

Altın Üye
Katılım
29 Haziran 2011
Mesajlar
256
Excel Vers. ve Dili
2019, Türkçe
Zeki bey,

Kitleme yapmasının sebebi verinin yaklaşık 150 gb ve bir çok tablodan inner join ile birleştirip insert işlemi ile başka bir tabloya aktarmaya çalışıyorum bundan dolayı da insert işlemi bitmediği sürece işlemi gerçekleştirmiyor. ( işlem süresi ön görüm 5-6 gün ola bilir )

Burada şöyle bir kurgu kurulması gerek yeni tabloya aktarılmış olanlara bir verinin ES geçip diğer verileri eklemesi gerekli burada ve işlem devam ederken aralarda örneğin (1000,10000,100000) gibi kayıt attıkça kaydetmesi ve kaldığı sıradan devam etmesi gerekli bu benim yapmak istediğim işlem için tas tamam bir işlem olacak..

Bu kadar kod bilgisine sahip olmadığım için formdan yardım bekliyorum..
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Hızlı bir aktarım için yapılan toplu insert işleminde varsayılan olarak işlem bitene kadar tablo kilitleniyormuş araştırdığım kadarıyla. Akatarım esnasında diğer insert lerin sıraya girmesi için "nolock" ifadesi eklenmesi gerekiyor. Buna göre sql cümleniz şu şekilde olmalı:

SQL:
insert into hedeftablo (alan1,....) with (nolock)
select .. from kaynaktablo join ...
from
Eğer işe yaramazsa, iki recordset açıp döngü kullanın. İşlem süreniz biraz daha uzar ama sıkıntı yaşamazsınız.

Kendiniz birşeyler arayacaksanız google şunu yazarak aratın : sql server bulk insert nolock
 
Üst