DbWorkbench ile Firebird de nasıl View Create edebilirim?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

DbWorkbench ile Firebird de nasıl View Create edebilirim?

Mesaj gönderen gkimirti »

Saygılar
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

2 şekilde
1. SQLText i kullanarak CREATE View komutu ile.
2. view yazısının üstüne sağ tıklayıp NEW komutunu vererek.
Sevgiler...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

CREATE VIEW V_DENEME
(
URUNNO,
SISTEMNO,
AGIRLIK,
TARIH,
SAAT
) AS
select urun_no,sistem_no,agirlik,tarih,saat
from URUN_STOK order by tarih;

soyle bir sey yaptım ama hata veriyor
order by cıkartılınca sorun yok
benim de sormak istedigim buydu
normal sql syntaxı seklinde mi yoksa ufak tefek farklılıkları varmı?
nette aradım bayagı bir
hic ornek bulamadım
dbworkbench helpi de yetersiz...
Saygılar,sevgiler
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

bildiğim kadarıyla view da order kullanılmıyor :!: daha sonra çekerken order koyacaksın.
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

evet rsimsek doğru söylüyor viewlarda order kullanamazsınız.
Order e view i Query den çağırdığınızda kullanın. view i bir tablo gibi düşünün tablo oluşturukende order kullanamazsınız. Sadece sorgulamaya aldığınızda order kullanabilirsiniz. Hiç bir tablo sıralı olarak kaydetmez. Order tablonun yapısına aykırı. Dikkat ederseniz tabloları create ederken index kullanıyoruz. index tabloyu alfabetik sıraya sokmuyor. Sadece tabloda hangi kaydın hangi kayıt nosunda olduğunu tutuyor. Siz indeksi çağırdığınızda indeks alfabetik sıralı halde karşınıza tabloyu memory e alarak getiriyor. Aslında tablo diskte kaydettiğiniz sırada durmaktadır. Bu sebeble view in yapısıda tablonun yapısı ile aynıdır.
Sevgiler...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

saol recep abi
bu view ile sadece join islemi mi yapılabiliyor
o zaman bu view ler nerede kullanılacak
programımdan query ile herseyi hazırlayıp datasource ile birlestirip
raporlama tooluna verirsem yine raporumu hazırlamıs olmam mı?
yani bu view kullanımının avantajları ne?
ne kazandıracak bana?
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

şunu düşün. 5 adet tablon var. ve Tek sorguyla her gün burdan bilgi almak zorundasın. ve kayıt sayısının yüzbinleri bulduğunu düşün. Sorgu zamanı uzayacaktır. Peki bunun yerine bu 5 tabloyu tek bir tabloymuş gibi filtre ederek sürekli güncel tutan view e ne dersin ? Sorgu hızındaki artış süper olacaktır. Veya bir personel veritabanında maaşları sadece 1 kişinin görmesi gerektiğini fakat maaş dışında personel tablosunda işlemler yapılması gerektiğini düşün. maaş dışında diğer fieldları bir view e doldurup bunu personele açmak nasıl olurdu ? view ler sorguları hızlandırmak, karmaşık soguları azaltmak ve güvenlik için kullanılırlar.
Sevgiler...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

saol cevap icin
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selam
sair arkadaşımız bir bilgi vermiş,
Hiç bir tablo sıralı olarak kaydetmez.
ancak bildiğim kadarı ile MS-SQL Server'da (tabi ne kadar yaptığı da tartışılabilir. Malum Microsoft yapıyorum der, ama yapmaz :twisted: ) Diğer DB'lerde de olabilir incelemedim.

Clustered Index metodu kullanıldığında, table'a verdiğiniz index definition'ına bağlı olarak veri girişi yapılan recordları bu index'e göre yerleştirir.

Yani Ad+Soyad diye bir cluestered index tanımlamışsanız veri girişlerinde (diske yerleştirirken) bu indexe göre paging yapar! Tabi doğal olarak da sadece 1 adet clustered index tanımlayabilirsiniz.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

sair yazdı:şunu düşün. 5 adet tablon var. ve Tek sorguyla her gün burdan bilgi almak zorundasın. ve kayıt sayısının yüzbinleri bulduğunu düşün. Sorgu zamanı uzayacaktır. Peki bunun yerine bu 5 tabloyu tek bir tabloymuş gibi filtre ederek sürekli güncel tutan view e ne dersin ? Sorgu hızındaki artış süper olacaktır.
Arkadaşlar eğer doğru anladıysam burada bir yanlışlık olduğunu düşünüyorum. Zira view'lar join ettikleri 3-5 ya da 10 tane tablonun içeriğini bir şekilde ayrı bir yerde tutmazlar. Create edilen view sonucunda veritabanında tutulan tek şey sizin view'i oluşturan Select cümlenizdir. Dolayısıyla 5 tana tablodan verilerin getirilmesi söz konusu olunca veritabanı tarafinda ilgili view içindeki Select cümlesi o anda çalıştırılarak veriler orjinal tablolardan derlenip getirilir. Peki performans artışı hiç mi olmaz. Şöyle bir bakış açısı ile olabilir.

1. View create edilirken ilgili Select cümlesi compile edildiği için çalıştırılacağı zaman hatasız ve Query planı hazır bir kod olarak çalıştığı için Query Optimizer tarafindan optimize edilme zamanindan ve plan hazırlama zamanından tasarruf edilir.
2. Eğer çok tablodan joinler yaparak ve bunlar üzerinden de farkli farkli kriterlerel 5-10 tane farkli sorgunuz varsa bunların ortak paydalarını tespit edip bunu saglayacak bir view oluşturabilirsiniz. Bu view'dan da gerek dogrudan select eder gerekse farkli kiriterlere gore ilave sartlar ile select edebilirsiniz. Bu durumda diyelim ki 10 tane farkli sorgunuzu tek bir view üzerinden farklilaştırdıysanız veritabanı tarafında ilgili view sık sık çağırılmaktan dolayı cache'te bulunma ihtimali artacağı için sorgu performansınız artabilir.

Sair Bey'in bahsettigi farkli kisilerin gorüp gormemesi gereken alanlar icin view kullanmak en yaygın kullanım alanıdır diyebilirim. Ya da en azından en yaygın view özelliği olarak bahsedilir. Zira ben, belki alışkanlık edinmediğimizdendir pek fazla view kullanmıyorum.

Kolay gelsin....

Kolay gelsin....
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Evet Fahrettin hocanın dediklerine katılıyorum. View lar sadece yapısal olarak kaydedilir. Kullanmak istediğinizde ilişkili tablolardaki alanları verdiğiniz şartlar çerçevesinde toparlayıp bir tabloymuş gibi size sunar. Bu arada denememekle beraber birden çok tablonun belli alanlarına tek bir gridden bilgi girmek için de kullanılabilirler. Hatta ilişkili tüm tablolardaki her bir kayıtı tek seferde silmek için de kullanılabilir. Bu ayrıca veritabanından veri tabanına değişebilir. :?:
Cevapla