Merhaba;
İçinde 700 bin kayıt mevcut olan ve 5 tabloyla join yaparak oluşturduğum bir view var. Raporlamada doğal olarak yavaş çalışıyor.
Viewi gerçek tabloya çevirmeye çalıştım.
INSERT INTO TABLO select * from VIEW ORDER BY IL,ILCE
Amacım tabloda kayıtların sıralı olması ve her defasında order çekmemek. Ve 5 tablodan okuyacağına, tek tabloyla hızlı olarak verileri listelemek.
Fakat tabloya kayıtları sıralı olarak atmıyor.
Wievin içindeki kayıtları sıralı olarak gerçek tabloya nasıl atabilirim?
(Indexed view de iyi performanslı çalışmadı)
Uzmanlara MSSQL Order Sorunu
9
●757
- 18-11-2014, 03:31:14Merhaba uzman değilim ama belki yardımcı olma konusunda faydam dokunabilir ilk öğrendiğim zamanlarda tablo birleştirme ile ugrasırken inner join dısında diğer join ifadelerinide kullanarak yapmıştık. Çok nadir olarak kullanılan Cross join ifadesini kullanarak yapabilirsin sanırım.
- 18-11-2014, 04:32:45Joinde sorun yok hocam. Joinlerden oluşan Viewi oracledaki materialized view benzeri bir yapıya (sabit tablo) dönüştürmeye çalışıyorum fakat sıralama yapmıyor. Muhtemelen mssqlin insert işlemi multithread çalıştığı için. Belki kayıtları döngüye sokarak, satır satır insert sorunu çözebilir, fakat daha kısa bir yol arıyorum.Kriptofany adlı üyeden alıntı: mesajı görüntüle
- 18-11-2014, 10:49:15Kimlik doğrulama veya yönetimden onay bekliyor.Bilindiği gibi view sanal bir tablodur, bu nedenle içerisindeki kolonlara göre sıralama yapamazsınız.
View yaratma sırasında verileri çekince order yapamalısınız.
CREATE VIEW vw_view1 AS SELECT TOP 100 PERCENT Kolon1,Kolon2,Kolon3... FROM Tablo ORDER BY Kolon1 Asc
Şöyle farklı bir yol önerebilirim sabit bir tabloya atmak için; temp tablosu yaratıp view'i komple temp üzerinde yaratmak ve temp'i order by yapıp gerçek tabloya temp üzerinden aktarmak. - 18-11-2014, 15:03:10C# kullanıyorum, bilgi verebilir misiniz?efeozyer adlı üyeden alıntı: mesajı görüntüle
- 18-11-2014, 17:46:19o şekilde yaptım zaten fakat kayıtları sırayla insert etmiyor.khaen adlı üyeden alıntı: mesajı görüntüle