Özgür Özvarış

Bir yazılımcının kırık dökük dünyası

Simple sql server management studio alternatifleri

clock Haziran 30, 2014 10:25 by author OzgurOzvaris

Merhaba,

Kaynak : http://stackoverflow.com/questions/5170/sql-server-management-studio-alternatives-to-browse-edit-tables-and-run-queries

Arkadaşlar bazen uygulama sunucunuzda sql server management studio olmayabilir. Bildiğiniz üzere bu tool free bir tool ancak indirmesi kurması zaman alıyor. Eğer acil olarak bir sunucuda sql bağlantısını test etmeniz gerekirse sizlere uzun zamandır böyle zamanlarda kullandığım Query Express isimli tool'u tavsiye ederim.

Buradan download edebiilirsiniz Query Express .

İyi çalışmalar.

 



Sqllite MSSQL bağlantısı

clock Haziran 26, 2014 16:03 by author OzgurOzvaris

Değerli Arkadaşlar,

Kaynak :

Creating a SQL Server Linked Server to SQLite to Import Data

SQLlite'ı hafife almamanızı tavsiye ederim. Adı lite olsada çok iş görüyor. Loglama sistemimiz tamamen ona emane etmiş durumdayız. Çok basit bir log tablosuna sürekli olarak log satırları yazdırıyoruz yaklaşık olarak günde 300.000 satırdan fazla log satırı yazıldığı oluyor. Ama hiç bir veri kaybımız olmadı. Sorunları yok değil ama loglama konusunda beklentimizi karşıladığını söylemelim.

İyi güzel logluyoruzda bu logları nasıl işleyeceğiz ve analiz edeceğiz. İşte burada lite olmasının sorunları başlıyor. Excel'e çıktı alması bizi 65bin küsür sınırı ile muhatap ediyor excel export adı altında yeni satır sınırı olmayan excellere export yapsada bu işlemi hem çok yavaş hemde açık olan excel'e satır satır eklemek gibi garip bir yöntem kullandığı için 100bin üzeri satırlada ciddi zaman kaybı oluyor. Asıl sorun bu değil asıl sorun sunucumuzda bu yöntemle açabileceği bir excel yüklü olmaması. Bu durumda iş parçalı olarak küçük excel'lere atılarak yapıloyor sonra bu exceller analiz için başka satır sınırı olmayan excelde birleştiriliyor bayağı uzun bir angarya.

Bu gün bir den bir ampul yandı kafamda. Ya dedim bu sql lite mssql ile bir bağlantı kuramazmı. Hemen karşıma olabileceğine dair linkler geldi. Bu linkteki adımları tek tek anlatmayacağım. Böyle böyle bir şeye ihtiyaç duyarsanız sizde bu adımları uygulayabilirsiniz.

http://www.mssqltips.com/sqlservertip/3087/creating-a-sql-server-linked-server-to-sqlite-to-import-data/

Öncelikle bir odbc driver kurmanız gerekiyor

http://www.ch-werner.de/sqliteodbc/

Sonra bu odbc driver'a konuda bahsedildiği gibi SystemDSN altına Add işlemiş kurduğunuz SQLLite 3 driver'ını kullanarak database'iniz bağlıyorsunuz.

Ardından sql server'a linked server olarak tanımlıyorsunuz.

USE [master]
GO
EXEC sp_addlinkedserver 
   @server = 'Mobile_Phone_DB_64', -- the name you give the server in SSMS 
   @srvproduct = '', -- Can be blank but not NULL
   @provider = 'MSDASQL', 
   @datasrc = 'Mobile_Phone_DB_64' -- the name of the system dsn connection you created
GO

Daha sonra sorgulamaya başlıyorsunuz :)

Select *
from openquery(Mobile_Phone_DB_64 , 'select * from db_notes')
GO

Select * into SQLite_Data -- This creates a table
from openquery(Mobile_Phone_DB_64 , 'select * from db_notes')
GO

Bu kadar basit.

İyi çalışmalar.



Dosya birleştirme ( file combine )

clock Haziran 11, 2014 17:42 by author OzgurOzvaris

Değerli Arkadaşlar,

Bazen dağınık haldeki log dosyalarını veya benzer durumlarda dosyaları birbirine ekleme ihtiyacı oluşabiliyor. Eğer böyle bir durum oluşuyorsa bu yazı sizede fadalı olacaktır.

Kaynak :

Need to combine lots of files in a directory

How can I combine two files on Windows?

Yöntem 1 -

for %f in (*.txt) do type "%f" >> combined.txt

Yöntem 2 -

copy *.txt destination.txt

Yöntem 3 -

$sb = new-object System.Text.StringBuilder

foreach ($file in Get-ChildItem -path 'C:\temp\xx\') {
    $content = Get-Content -Path $file.fullname
    $sb.Append($content)
}
Out-File -FilePath 'C:\temp\xx\c.txt' -InputObject $sb.toString()

Daha bir çok yöntem internette anlatılıyor. Ben bir kaç tanesini yazdım. Kendim 1. yöntemle sorunumu halletim.

İyi çalışmalar. 



MSSQL Multi core kullanımı

clock Haziran 11, 2014 13:02 by author OzgurOzvaris

Değerli arkdaşlar ,

Microsoft SQL ile ilgili önemli sorunlarda bir taneside multicore'a karşılık performans artışı sorusu. Bu soru dipsiz bir kuyu gibi. En azından cpu lara tam erişebiliyormuyuz derseniz şu sorguyu kullanabilirsiniz.

Kaynak :

How many CPU cores can SQL Server use?

SQL SERVER – Measure CPU Pressure – CPU Business

Sql kaç cpu görüyor

select cpu_count from sys.dm_os_sys_info

Bu cpu lardan kaçı aktif durumda

select scheduler_id,cpu_id, status, is_online from sys.dm_os_schedulers where status='VISIBLE ONLINE'

Bu cpu'lar üzerindeki iş yükü nedir

SELECT
scheduler_id,
cpu_id,
current_tasks_count,
runnable_tasks_count,
current_workers_count,
active_workers_count,
work_queue_count,
pending_disk_io_count
FROM sys.dm_os_schedulers
WHERE scheduler_id < 255;

İyi çalışmlalar.



iis7 internet exploerer 11 problemi

clock Haziran 9, 2014 14:27 by author OzgurOzvaris

Değerli Arkadaşlar,

Artık kesinleşti iis 7 de bir şeyler kurmadığınız taktirde ie11 desteklenmiyor. Bulabildiğin en kestirme yol Ekim 2013 tarihli şimdi linkini paylaşacağım .Net Update patchi.

http://support.microsoft.com/kb/2836939/en

Herkese iyi çalışmalar.



Plan Caching in SQL Server 2008, Forcing Query Plans

clock Haziran 4, 2014 11:05 by author OzgurOzvaris

Değerli Arkadaşlar,

Bu aralar sql performansı ile uğraştığımdan bahsetmiştim.

"Çok sayıda çalışan bir sorgunuz varsa herşey sorundur demektir."  Özgür Özvarış :) 04/06/2014

Kaynak

Plan Caching in SQL Server 2008

Forcing Query Plans

How to determine what is compiling in SQL Server

Amacımız çok çalışan sorgumuzun herseferinde çalışma planın derlenmesini engellemek. Şimdi birilerinin stored procedur yapın dediğini duyar gibiyim :) Ama bu sorgumuz o kadar zorlu bir sorguki araya giren where conditionları stored procedure dahi olsa yapıyı bozuyor.

Süreç uzun çalışan sorgularımda çok uzun compile süreleri görmemle başladı. Daha sonra How to determin what is compilin in SQL Server makalesinde söylendiği üzere profiler kriterlerme Perfomance aldınaki fieldları eklediğimde gerçekten her sorgumun ciddi manada derlendiğini gördüm. Şimdi sıra derlenmesi engellemek Plan Caching makalesinde geçen derlemelerin caclenmesi ve reuse edilmesi mevzuna geldi. Ancak sorgumuzu parametrik yamaktansa çok çalışan iki case için exceution planı force etmek daha çok işimizde geldi. Bizde Forcing Query Planda söylenen yöntem ile bu iki sorgu case'imizi force etmeye karar verdik.

Olurda force etmek isterseniz Quary Analizerdan excecution planla sorgunuzu çalıştırın. Save As XML deyin. direk makaledeki gibi eklemeyin içindeki iki yeri düzelmeniz gerekiyor Öncelikle ' karakterlerinin '' (iki tek tırnak yanyana) replace işlemini yapın. Ardından "StmtSimple" nodundaki "StatementText" Fieldını temizleyin şimdi sorunsuz eklenecektir.

İyi çalışmalar.

 

 



Mssql Lock Listesini alma

clock Haziran 3, 2014 12:58 by author OzgurOzvaris

Değerli arkadaşlar,

Bu aralar query performansla yine başım dertte. Yaklaşık olarak günlük 100000 adet alınan bir sorgunun optimize edilmesi ile uğraşıyorum. Şimdi sırada lock olan tablo vamı onları kontrol etmek geldi.

Kaynak :

Finding out which locks that are acquired in a query on SQL Server?

Understanding Locking in SQL Server

Where DeadLock details are stored in SQL Server 3 tane link vermiş güzeller

Deadlock bulamadım şimdilik. Ancak aşağıda verdiğim sorguyu çalıştırınca iki tablomda with(nolock) demediğimi buldum.

select 'Locks' as Locks,
    spid, nt_username, name, hostname, loginame, waittime, open_tran,
    last_batch, convert(varchar ,getdate() - last_batch, 114) as TimeSinceLastCommand,
    case req_mode
    when  0 then 'Not granted'
    when  1 then 'Schema stability'
    when  2 then 'Schema modification'
    when  3 then 'Intent shared'
    when  4 then 'Shared intent update'
    when  5 then 'Intent shared shared'
    when  6 then 'Intent exclusive'
    when  7 then 'Shared Intent Exclusive'
    when  8 then 'Shared'
    when  9 then 'Update'
    when 10 then 'Intent insert NULL'
    when 11 then 'Intent shared exclusive'
    when 12 then 'Intent update'
    when 13 then 'Intent shared-update'
    when 14 then 'Exclusive'
    when 15 then 'Bulk operation'
    else str(req_mode) end as LockMode
from master..syslockinfo
    left join sysobjects so on so.id = rsc_objid
    left join master..sysprocesses sp on sp.spid = req_spid
--where rsc_dbid = (select db_id()) and ltrim(req_mode) in (6,7,11,14)

Bu konuda birşeyler buldukça paylaşmaya devam edeceğim.

 

bu sorgu bu konuda baya işime yaradı.

 

 



Hakkımızda  AboneOl 

Blog Yayınımıza Hoşgeldiniz.

Month List

RecentPosts

Sign In