Sql cumlesindeki fromdan sonraki biliglerin fonksiyonu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

Sql cumlesindeki fromdan sonraki biliglerin fonksiyonu

Mesaj gönderen Burhan_ast »

Merhaba,

Piyasada mevcut bulunan bir program asagidaki gibi bir Sql cumlesi calistirmaktadir, burda from satirindan sonraki tablo isminden sonraki turde bir sorgu ile ilk defa karsilastim acaba ne ise yaramktadir,

Kod: Tümünü seç

SELECT  
				DISTINCT TOP 150 
				LGMAIN.LOGICALREF, 
				LGMAIN.CODE, 
				LGMAIN.NAME, 
				LGMAIN.CARDTYPE, 
				LGMAIN.ACTIVE, 
				LGMAIN.TRACKTYPE, 
				LGMAIN.CYPHCODE, 
				LGMAIN.SPECODE, 
				LGMAIN.CLASSTYPE, 
				LGMAIN.MTRLBRWS, 
				LGMAIN.ORGLOGICREF, 
				LGMAIN.UNITSETREF
FROM LG_900_ITEMS LGMAIN WITH(NOLOCK, INDEX = I900_ITEMS_I6) 
WHERE (LGMAIN.CLASSTYPE = 0) AND (LGMAIN.ACTIVE = 0)
ORDER BY LGMAIN.CLASSTYPE, LGMAIN.ACTIVE, LGMAIN.CODE, LGMAIN.LOGICALREF
Bu sorgudaki

Kod: Tümünü seç

FROM LG_900_ITEMS LGMAIN WITH(NOLOCK, INDEX = I900_ITEMS_I6) 
Goruldugu gibi LG_900_ITEMS cumlesinden sonraki bilgiler ne anlama gelmektedir,

Saygilar
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Zannedersem from'dan sonraki adı geçen bir Stored Procedure olsa gerek... with ile kstedilen nedir bilemiyorum ama parantez içindekiler sanki stored procedure parametreleri gibi....

Hangi veritabanı ise onun helpinde bakarak daha fazla ipucu bulabilirsiniz.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

WITH(NOLOCK)
Sorgunun Time Out a düşmemesi için kullanılır ama

Kod: Tümünü seç

INDEX = I900_ITEMS_I6) 
bunu bilemiyorum.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Belki o da query optimzer'a bu indexi kullan babından bir direktif olabilir mi ?
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

ms sql serverda ben o ifade ile karşılaşmadım hiç, sadece with(nolock) kullanıyoruz. helpe baktım bişey bulamadım. Veritabanına göre kullanım farkı olabilir, hangi veritabanında çalışıyor bu sql cümlesi?
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

bu logo yazılımını databesesinden alınmış bir kod olsa gerel çünkü

Kod: Tümünü seç

LG_900_ITEMS 
logonmun tarzı buda 900 nolu firmanın kodlarıyla alakalı

ama kod biraz karışık sp çağrılarak işler yırıyor.

ben SAMSUN da logo yazılımın 2 yıl eğitimini verdim.

ordan biliyorum.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ben de şimdi profiller kullanırken farkettim :) Logoda var bu evet. Anlamı şu imiş, sorgulama yaparken ilgili tablonun bu indexini kullan.

Kod: Tümünü seç

INDEX = I900_ITEMS_I6) 
Burhan_ast
Üye
Mesajlar: 143
Kayıt: 15 Haz 2003 08:33
Konum: Almaty, Kazakhstan

Kod logonun ve SQl serverda

Mesaj gönderen Burhan_ast »

Evet dediklerinizde haklisiniz Kod logonun ve Sql serverda calisiyor,

Naile su sekilde yazmis

Kod: Tümünü seç

WITH(NOLOCK)
Sorgunun time out olmamasini saglar, 30000 kayitli bir stok sorguluyorum ve bu sorgulamada sub queryler kullanarak ne kadar girmis ne kadar cikmis ve depo mevcudunu tespit edip bir rapor hazirliyorum ve surekli olarak time out oluyorum sorgulama sirasinda yukarida naile nin dedigini yani WITH(NOLOCK) kullanacagim umarim isime yarar bunun harincinde neler kullanabilirim timeout olmamak icin


saygilar
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ah şu Sql Serverın time outları :evil:

Eğer with(nolock) ta işine yaramıyorsa (ki bazen yaramıyor) ve bde kullanıyorsan, biyerden time out süresi uzatılabiliyordu. Şuan tam hatırlayamıyorum ama öğrenip yazacağım inş.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

naile yazdı:Ah şu Sql Serverın time outları :evil:
Time out mu o da ne? :shock: Hic duymadım.... Yenir mi icilir mi acaba ? Ya da sybase'deki, firebird'deki karşılığı nedir acaba bilen var mı ;)
:D
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

fahrettin yazdı:
naile yazdı:Ah şu Sql Serverın time outları :evil:
Time out mu o da ne? :shock: Hic duymadım.... Yenir mi icilir mi acaba ? Ya da sybase'deki, firebird'deki karşılığı nedir acaba bilen var mı ;)
:D
Ama napayım işyerinde bu kullanılıyor başka seçeneğim yok maalesef :(
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

velhasıl sql server kan kaybetmeye devam eder..... :)
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Eğer bde kullanıyorsan time out süresini BDE Administrator a girip

Configuration -> Drivers -> Native -> MSSQL i seçerek TIMEOUT dan

değiştirebilirsin.
mkarabulut
Üye
Mesajlar: 53
Kayıt: 26 May 2004 11:15
Konum: Gaziantep
İletişim:

Mesaj gönderen mkarabulut »

fahrettin yazdı:velhasıl sql server kan kaybetmeye devam eder..... :)
İyi güzelde buradaki Timeout'un SQL Server ile ilgisi yok, tamamen istemcinin kendi ayarları ile ilgili bir durum.

Çünkü SQL Server'ın varsayılan Query İşleme/Bitirme Timeout süresi 10 dakikadır. Ve arkadaşımızın da 10 dakika beklemeden timeout'u aldığını sanmaktayım.

Resmi dokumantasyondan
The default is 600, which allows a ten minute wait.
Lütfen SQL Server'a bu kadar yüklenmeyelim. Kullanalım, kullanmayanları uyaralım.

Saygılarımla.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Oracle'a geç bakalım time out görüyor musun bidaha ;)
Cevapla