Yorumları: 685
Konuları: 75
Kayıt Tarihi: 24-01-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 926 Acemi
Herkese kolaylıklar ve hayırlı işler diliyorum öncelikle.
Hayırlı haftalar.
Ufak bir sorunum var yarımcı olabilecek arkadaşlardan yardım rica ediyorum.
Microsoft SQL Server kullanıyorum.
Çalışan mevcut yapılara bazen index eklemem gerekebiliyor veya çalışan bazı sorgular süreç olarak çok uzun zaman aldığından timeout a düşebiliyor. Bu Bazen bilgisayar kaynaklı bazen index kaynaklı olduğu için hem tespit yapabilmek hemde çalışan sorgunun durumunu anlayabilmek adına çalıştırdığım sorgunun şu an ne aşamada olduğunu görebilir miyim. (mesela %10 , %20 gibi veya 3500 / 10000 gibi maksat devam süreç hakkında bilgi sahibi olmak . Bunu SQl üzerinde ve Delphi üzerinde nasıl takip edebilirim. Bazı indexlerin bilgisayar üzerinden belli aralıklarla yapılması gerekiyor Bunun içinde bir önzileme ekranı hiç fena olmaz. Bu konuda yardım rica ediyorum.
Yorumları: 306
Konuları: 20
Kayıt Tarihi: 26-09-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.003 Uzman
(20-09-2021, Saat: 10:30)Bay_Y Adlı Kullanıcıdan Alıntı: Herkese kolaylıklar ve hayırlı işler diliyorum öncelikle.
Hayırlı haftalar.
Ufak bir sorunum var yarımcı olabilecek arkadaşlardan yardım rica ediyorum.
Microsoft SQL Server kullanıyorum.
Çalışan mevcut yapılara bazen index eklemem gerekebiliyor veya çalışan bazı sorgular süreç olarak çok uzun zaman aldığından timeout a düşebiliyor. Bu Bazen bilgisayar kaynaklı bazen index kaynaklı olduğu için hem tespit yapabilmek hemde çalışan sorgunun durumunu anlayabilmek adına çalıştırdığım sorgunun şu an ne aşamada olduğunu görebilir miyim. (mesela %10 , %20 gibi veya 3500 / 10000 gibi maksat devam süreç hakkında bilgi sahibi olmak . Bunu SQl üzerinde ve Delphi üzerinde nasıl takip edebilirim. Bazı indexlerin bilgisayar üzerinden belli aralıklarla yapılması gerekiyor Bunun içinde bir önzileme ekranı hiç fena olmaz. Bu konuda yardım rica ediyorum.
Management studio da kırmızı ile işaretlediğim button a tıkladıktan sonra çalıştırırsanız tüm süreçleri ve cost verilerine ulaşırsınız. Ayrıca sorgunuza lazım olan fakat tanımlamadığınız indexler varsa "Missing Index" yazarak sizi uyarır. Delphi tarafında da yine TSQL aracılığı ile bu verilere erişilebiliniyor.
[img]  [/img]
Amatör Küme Bilgisayar Programcısı
Yorumları: 685
Konuları: 75
Kayıt Tarihi: 24-01-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 926 Acemi
20-09-2021, Saat: 10:58
(Son Düzenleme: 20-09-2021, Saat: 15:14, Düzenleyen: Bay_Y.)
Cevabınız için teşekkür ediyorum Ali bey bahsettiğim bu değildi sanırım tam olarak anlatamadım. (aslında sonuç doğru sayılabilir çünkü bu da canlı olarak süreci takip ediyor.)
Ama istediğim çalışma esnasında bu süreç bilgilerini alıp delphi üzerinde işleyebilmek ve son kullanıcıya göstermek . ( anlaşılır olsun diye bir örnek vermek istiyorum. Yani bir tabloyu düşünün indexleme yapılacak. Başla dediğinde %1,2,3,4,5, gibi anlık görebileceğim o verilere ulaşabileceğim bir durumdan bahsediyorum.)
Yine de cevabınız için teşekkür ediyorum.
sanırım bunu karşılayan bir sorgu bulabilirim.
Yorumları: 150
Konuları: 17
Kayıt Tarihi: 01-08-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 495 Acemi
profilerdan anlık olarak sorguları ve estimated time gibi bilgilere ulaşabilirsin.
profiler management studio içinde integrated olarak var.
veya azıure data studioya extension ekleyerek ücretsiz bakabilrsin.
Ücretli başka bir çok alternatifte var tabi.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.
Yorumları: 306
Konuları: 20
Kayıt Tarihi: 26-09-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.003 Uzman
Merhaba,
Aşağıdaki gibi bir kod buldum. Fakat sadece geçen süreyi veriyor. Percent kısmı sürekli 0 olarak kalıyor. Doğru olarak işaretlenen cevaptaki açıklamaları okumanızda fayda var.
SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete)
AS [Percent Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],
CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],
CONVERT(VARCHAR(1000),(SELECT SUBSTRING(text,r.statement_start_offset/2,
CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)
FROM sys.dm_exec_sql_text(sql_handle)))
FROM sys.dm_exec_requests r WHERE command IN ('Alter Index')
Amatör Küme Bilgisayar Programcısı
Yorumları: 685
Konuları: 75
Kayıt Tarihi: 24-01-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 926 Acemi
(20-09-2021, Saat: 18:43)barutali Adlı Kullanıcıdan Alıntı: Merhaba,
Aşağıdaki gibi bir kod buldum. Fakat sadece geçen süreyi veriyor. Percent kısmı sürekli 0 olarak kalıyor. Doğru olarak işaretlenen cevaptaki açıklamaları okumanızda fayda var.
SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete)
AS [Percent Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],
CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],
CONVERT(VARCHAR(1000),(SELECT SUBSTRING(text,r.statement_start_offset/2,
CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)
FROM sys.dm_exec_sql_text(sql_handle)))
FROM sys.dm_exec_requests r WHERE command IN ('Alter Index')
Teşekkürler , Bende araştırıyorum konu ile ilgili bir sonuca ulaşırsam buradan paylaşacağım.
|