none
Daha Önce Açılmış Kullanıcıları Geri getirmek RRS feed

  • Soru

  • Merhaba,

     

    SQL Server 2008 R2 de Yedek aldım ve Daha once açmış olduğum kullanıcıları yedeğimi yeni yüklediğim yere nasıl aktarabilirim Kullanıcılar çıkmıyor ve aynı kullanıcıları açmaya çalıştığımda ise kullanıcı var uyarısı alıyorum.

     

    Teşekkür Ederim.

    İyi Çalışmalar.

    19 Temmuz 2011 Salı 10:00

Yanıtlar

  • Merhaba,
    aşağıdaki sorguyu dneeyebilir msiniz?

    USE master
    GO
    IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
     DROP PROCEDURE sp_hexadecimal
    GO
    CREATE PROCEDURE sp_hexadecimal
      @binvalue varbinary(256),
      @hexvalue varchar (514) OUTPUT
    AS
    DECLARE @charvalue varchar (514)
    DECLARE @i int
    DECLARE @length int
    DECLARE @hexstring char(16)
    SELECT @charvalue = '0x'
    SELECT @i = 1
    SELECT @length = DATALENGTH (@binvalue)
    SELECT @hexstring = '0123456789ABCDEF'
    WHILE (@i <= @length)
    BEGIN
     DECLARE @tempint int
     DECLARE @firstint int
     DECLARE @secondint int
     SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
     SELECT @firstint = FLOOR(@tempint/16)
     SELECT @secondint = @tempint - (@firstint*16)
     SELECT @charvalue = @charvalue +
      SUBSTRING(@hexstring, @firstint+1, 1) +
      SUBSTRING(@hexstring, @secondint+1, 1)
     SELECT @i = @i + 1
    END
    
    SELECT @hexvalue = @charvalue
    GO
     
    IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
     DROP PROCEDURE sp_help_revlogin
    GO
    CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
    DECLARE @name sysname
    DECLARE @type varchar (1)
    DECLARE @hasaccess int
    DECLARE @denylogin int
    DECLARE @is_disabled int
    DECLARE @PWD_varbinary varbinary (256)
    DECLARE @PWD_string varchar (514)
    DECLARE @SID_varbinary varbinary (85)
    DECLARE @SID_string varchar (514)
    DECLARE @tmpstr varchar (1024)
    DECLARE @is_policy_checked varchar (3)
    DECLARE @is_expiration_checked varchar (3)
    
    DECLARE @defaultdb sysname
     
    IF (@login_name IS NULL)
     DECLARE login_curs CURSOR FOR
    
       SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM 
    sys.server_principals p LEFT JOIN sys.syslogins l
       ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'
    ELSE
     DECLARE login_curs CURSOR FOR
    
    
       SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM 
    sys.server_principals p LEFT JOIN sys.syslogins l
       ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name
    OPEN login_curs
    
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
    IF (@@fetch_status = -1)
    BEGIN
     PRINT 'No login(s) found.'
     CLOSE login_curs
     DEALLOCATE login_curs
     RETURN -1
    END
    SET @tmpstr = '/* sp_help_revlogin script '
    PRINT @tmpstr
    SET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
    PRINT @tmpstr
    PRINT ''
    WHILE (@@fetch_status <> -1)
    BEGIN
     IF (@@fetch_status <> -2)
     BEGIN
      PRINT ''
      SET @tmpstr = '-- Login: ' + @name
      PRINT @tmpstr
      IF (@type IN ( 'G', 'U'))
      BEGIN -- NT authenticated account/group
    
       SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'
      END
      ELSE BEGIN -- SQL Server authentication
        -- obtain password and sid
          SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )
        EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT
        EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
     
        -- obtain password policy state
        SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
        SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
     
          SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'
    
        IF ( @is_policy_checked IS NOT NULL )
        BEGIN
         SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked
        END
        IF ( @is_expiration_checked IS NOT NULL )
        BEGIN
         SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked
        END
      END
      IF (@denylogin = 1)
      BEGIN -- login is denied access
       SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )
      END
      ELSE IF (@hasaccess = 0)
      BEGIN -- login exists but does not have access
       SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )
      END
      IF (@is_disabled = 1)
      BEGIN -- login is disabled
       SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'
      END
      PRINT @tmpstr
     END
    
     FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
      END
    CLOSE login_curs
    DEALLOCATE login_curs
    RETURN 0
    go
    
    EXEC sp_help_revlogin
    

    • Yanıt Olarak İşaretleyen Serkan Bark 25 Temmuz 2011 Pazartesi 13:05
    20 Temmuz 2011 Çarşamba 14:06

Tüm Yanıtlar

  • Merhaba oncelikle kullanıcıları drop etip daha sonra create etmelisiniz. Fakat bunu tek tek elle yapmak yerine iki makine rasında loginleri tasıyabilirsiniz. Bunun içinde aşağıdaki scripti kullanabilirsiniz.

     

    Bir diğer yontem ise SSIS de olusturacagınız bir package ile loginkleri transfer edebilirsiniz.

    Kolay gelsin

    19 Temmuz 2011 Salı 10:33


  • declare @WinnerUser varchar(30)
    select  @WinnerUser=''

    while @WinnerUser is not null
      begin
          select @WinnerUser = min(ltrim(rtrim(o.name))) from sysusers o where o.hasdbaccess = 1 and o.name <> 'dbo'
                  and o.name > @WinnerUser
              exec sp_addlogin @WinnerUser
              exec sp_dropuser @WinnerUser
                  exec sp_grantdbaccess @WinnerUser
              print rtrim(@WinnerUser)
      end


    Biz Şöyle Bir SQL Cümleciği kullanıyoruz bazı kullanıcıları getiriyor ama hepsini değil.
    19 Temmuz 2011 Salı 10:48
  • Burada nasıl yapabileceğiniz anlatılıyor.

    http://support.microsoft.com/kb/246133

     


    http://www.mehmetx.com
    19 Temmuz 2011 Salı 10:55
  • Merhaba,
    Bu kodu TEST makineniz uzerinde deneyin isterseniz.

    declare @name varchar(1024)
    declare curs cursor for
    select name from sys.sql_logins where is_disabled=0 and principal_id>1
    
    open curs
    fetch next from curs into @name
    while (@@fetch_status = 0)
    begin
    
    if exists(select top 1 1 from sys.sql_logins where name=@name)
    exec sp_dropuser @name
    
    if not exists(select top 1 1 from sys.sql_logins where name=@name)
    exec sp_addlogin @name
    
    if exists(select top 1 1 from sys.sql_logins where name=@name)
    exec sp_grantdbaccess @name
    
    fetch next from curs into @name
    end
    close curs
    deallocate curs
    

    19 Temmuz 2011 Salı 11:56
  • Pardon affınıza sığınarak bu kodu yeni kurdugum makinada mı yoksa eski makinada mı deneyeceğim
    19 Temmuz 2011 Salı 14:33
  • Merhaba kusura bakma cok acıklayacı olmamıs.

    Aşağıdaki kodu eski makinede caliştiricaksın cıkan sonucu kopyalayıp yeni makineyede de onu caliştiracaksın.

    Kolay gelsin

     

    declare @name varchar(1024)
    declare curs cursor for
    select name from sys.sql_logins where is_disabled=0 and principal_id>1
    
    open curs
    fetch next from curs into @name
    while (@@fetch_status = 0)
    begin
    
    print
    'if exists(select top 1 1 from sys.sql_logins where name='''+@name+''')'+CHAR(13) +
    'exec sp_dropuser ' +@name+'  '+CHAR(13) +
    
    'if not exists(select top 1 1 from sys.sql_logins where name='''+@name+''')'+CHAR(13) +
    'exec sp_addlogin '+@name+'  '+CHAR(13) +
    
    'if exists(select top 1 1 from sys.sql_logins where name='''+@name+''')'+CHAR(13) +
    'exec sp_grantdbaccess '+@name
    
    fetch next from curs into @name
    end
    close curs
    deallocate curs
    


    20 Temmuz 2011 Çarşamba 12:29
  • Şimdi Yeni kurduğum makinada ki sql i inceliyordum da şunu gördüm.

     

    NiteL
    Databases
    Cisse
    Security
    Users

    Altında Tüm kullanıcılar Mevcut asLında ama

    Security
    Logins aLtında Sadece o kullanıcılardan 4 tanesi var.

     

    Sizin verdiğiniz Kodu da çalıştırdım.

    if exists(select top 1 1 from sys.sql_logins where name='bayi')
    exec sp_dropuser bayi 
    if not exists(select top 1 1 from sys.sql_logins where name='bayi')
    exec sp_addlogin bayi 
    if exists(select top 1 1 from sys.sql_logins where name='bayi')
    exec sp_grantdbaccess bayi
    if exists(select top 1 1 from sys.sql_logins where name='bayiiliskileri')
    exec sp_dropuser bayiiliskileri 
    if not exists(select top 1 1 from sys.sql_logins where name='bayiiliskileri')
    exec sp_addlogin bayiiliskileri 
    if exists(select top 1 1 from sys.sql_logins where name='bayiiliskileri')
    exec sp_grantdbaccess bayiiliskileri
    if exists(select top 1 1 from sys.sql_logins where name='depo')
    exec sp_dropuser depo 
    if not exists(select top 1 1 from sys.sql_logins where name='depo')
    exec sp_addlogin depo 
    if exists(select top 1 1 from sys.sql_logins where name='depo')
    exec sp_grantdbaccess depo
    if exists(select top 1 1 from sys.sql_logins where name='NebimWebUser')
    exec sp_dropuser NebimWebUser 
    if not exists(select top 1 1 from sys.sql_logins where name='NebimWebUser')
    exec sp_addlogin NebimWebUser 
    if exists(select top 1 1 from sys.sql_logins where name='NebimWebUser')
    exec sp_grantdbaccess NebimWebUser
    if exists(select top 1 1 from sys.sql_logins where name='online')
    exec sp_dropuser online 
    if not exists(select top 1 1 from sys.sql_logins where name='online')
    exec sp_addlogin online 
    if exists(select top 1 1 from sys.sql_logins where name='online')
    exec sp_grantdbaccess online
    if exists(select top 1 1 from sys.sql_logins where name='online1')
    exec sp_dropuser online1 
    if not exists(select top 1 1 from sys.sql_logins where name='online1')
    exec sp_addlogin online1 
    if exists(select top 1 1 from sys.sql_logins where name='online1')
    exec sp_grantdbaccess online1
    if exists(select top 1 1 from sys.sql_logins where name='online2')
    exec sp_dropuser online2 
    if not exists(select top 1 1 from sys.sql_logins where name='online2')
    exec sp_addlogin online2 
    if exists(select top 1 1 from sys.sql_logins where name='online2')
    exec sp_grantdbaccess online2
    if exists(select top 1 1 from sys.sql_logins where name='emrah')
    exec sp_dropuser emrah 
    if not exists(select top 1 1 from sys.sql_logins where name='emrah')
    exec sp_addlogin emrah 
    if exists(select top 1 1 from sys.sql_logins where name='emrah')
    exec sp_grantdbaccess emrah
    if exists(select top 1 1 from sys.sql_logins where name='emrah2')
    exec sp_dropuser emrah2 
    if not exists(select top 1 1 from sys.sql_logins where name='emrah2')
    exec sp_addlogin emrah2 
    if exists(select top 1 1 from sys.sql_logins where name='emrah2')
    exec sp_grantdbaccess emrah2
    if exists(select top 1 1 from sys.sql_logins where name='satis3')
    exec sp_dropuser satis3 
    if not exists(select top 1 1 from sys.sql_logins where name='satis3')
    exec sp_addlogin satis3 
    if exists(select top 1 1 from sys.sql_logins where name='satis3')
    exec sp_grantdbaccess satis3
    if exists(select top 1 1 from sys.sql_logins where name='depo2')
    exec sp_dropuser depo2 
    if not exists(select top 1 1 from sys.sql_logins where name='depo2')
    exec sp_addlogin depo2 
    if exists(select top 1 1 from sys.sql_logins where name='depo2')
    exec sp_grantdbaccess depo2
    if exists(select top 1 1 from sys.sql_logins where name='derya')
    exec sp_dropuser derya 
    if not exists(select top 1 1 from sys.sql_logins where name='derya')
    exec sp_addlogin derya 
    if exists(select top 1 1 from sys.sql_logins where name='derya')
    exec sp_grantdbaccess derya
    if exists(select top 1 1 from sys.sql_logins where name='bi')
    exec sp_dropuser bi 
    if not exists(select top 1 1 from sys.sql_logins where name='bi')
    exec sp_addlogin bi 
    if exists(select top 1 1 from sys.sql_logins where name='bi')
    exec sp_grantdbaccess bi
    if exists(select top 1 1 from sys.sql_logins where name='turker')
    exec sp_dropuser turker 
    if not exists(select top 1 1 from sys.sql_logins where name='turker')
    exec sp_addlogin turker 
    if exists(select top 1 1 from sys.sql_logins where name='turker')
    exec sp_grantdbaccess turker
    if exists(select top 1 1 from sys.sql_logins where name='duysal')
    exec sp_dropuser duysal 
    if not exists(select top 1 1 from sys.sql_logins where name='duysal')
    exec sp_addlogin duysal 
    if exists(select top 1 1 from sys.sql_logins where name='duysal')
    exec sp_grantdbaccess duysal
    if exists(select top 1 1 from sys.sql_logins where name='satis4')
    exec sp_dropuser satis4 
    if not exists(select top 1 1 from sys.sql_logins where name='satis4')
    exec sp_addlogin satis4 
    if exists(select top 1 1 from sys.sql_logins where name='satis4')
    exec sp_grantdbaccess satis4
    if exists(select top 1 1 from sys.sql_logins where name='satis5')
    exec sp_dropuser satis5 
    if not exists(select top 1 1 from sys.sql_logins where name='satis5')
    exec sp_addlogin satis5 
    if exists(select top 1 1 from sys.sql_logins where name='satis5')
    exec sp_grantdbaccess satis5
    if exists(select top 1 1 from sys.sql_logins where name='satis6')
    exec sp_dropuser satis6 
    if not exists(select top 1 1 from sys.sql_logins where name='satis6')
    exec sp_addlogin satis6 
    if exists(select top 1 1 from sys.sql_logins where name='satis6')
    exec sp_grantdbaccess satis6
    
    


    Böyle Bir kod verdi.

    Yeni Makinada Çalıştırdğım zaman

    Msg 3729, Level 16, State 1, Procedure sp_revokedbaccess, Line 51
    Cannot drop schema 'depo' because it is being referenced by object 'PK__tbStokEt__5BDEC512106C4921'.

    Bu Hatayı verdi

    20 Temmuz 2011 Çarşamba 12:45
  • Merhaba,
    aşağıdaki sorguyu dneeyebilir msiniz?

    USE master
    GO
    IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
     DROP PROCEDURE sp_hexadecimal
    GO
    CREATE PROCEDURE sp_hexadecimal
      @binvalue varbinary(256),
      @hexvalue varchar (514) OUTPUT
    AS
    DECLARE @charvalue varchar (514)
    DECLARE @i int
    DECLARE @length int
    DECLARE @hexstring char(16)
    SELECT @charvalue = '0x'
    SELECT @i = 1
    SELECT @length = DATALENGTH (@binvalue)
    SELECT @hexstring = '0123456789ABCDEF'
    WHILE (@i <= @length)
    BEGIN
     DECLARE @tempint int
     DECLARE @firstint int
     DECLARE @secondint int
     SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
     SELECT @firstint = FLOOR(@tempint/16)
     SELECT @secondint = @tempint - (@firstint*16)
     SELECT @charvalue = @charvalue +
      SUBSTRING(@hexstring, @firstint+1, 1) +
      SUBSTRING(@hexstring, @secondint+1, 1)
     SELECT @i = @i + 1
    END
    
    SELECT @hexvalue = @charvalue
    GO
     
    IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
     DROP PROCEDURE sp_help_revlogin
    GO
    CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
    DECLARE @name sysname
    DECLARE @type varchar (1)
    DECLARE @hasaccess int
    DECLARE @denylogin int
    DECLARE @is_disabled int
    DECLARE @PWD_varbinary varbinary (256)
    DECLARE @PWD_string varchar (514)
    DECLARE @SID_varbinary varbinary (85)
    DECLARE @SID_string varchar (514)
    DECLARE @tmpstr varchar (1024)
    DECLARE @is_policy_checked varchar (3)
    DECLARE @is_expiration_checked varchar (3)
    
    DECLARE @defaultdb sysname
     
    IF (@login_name IS NULL)
     DECLARE login_curs CURSOR FOR
    
       SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM 
    sys.server_principals p LEFT JOIN sys.syslogins l
       ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'
    ELSE
     DECLARE login_curs CURSOR FOR
    
    
       SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM 
    sys.server_principals p LEFT JOIN sys.syslogins l
       ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name
    OPEN login_curs
    
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
    IF (@@fetch_status = -1)
    BEGIN
     PRINT 'No login(s) found.'
     CLOSE login_curs
     DEALLOCATE login_curs
     RETURN -1
    END
    SET @tmpstr = '/* sp_help_revlogin script '
    PRINT @tmpstr
    SET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
    PRINT @tmpstr
    PRINT ''
    WHILE (@@fetch_status <> -1)
    BEGIN
     IF (@@fetch_status <> -2)
     BEGIN
      PRINT ''
      SET @tmpstr = '-- Login: ' + @name
      PRINT @tmpstr
      IF (@type IN ( 'G', 'U'))
      BEGIN -- NT authenticated account/group
    
       SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'
      END
      ELSE BEGIN -- SQL Server authentication
        -- obtain password and sid
          SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )
        EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT
        EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
     
        -- obtain password policy state
        SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
        SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
     
          SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'
    
        IF ( @is_policy_checked IS NOT NULL )
        BEGIN
         SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked
        END
        IF ( @is_expiration_checked IS NOT NULL )
        BEGIN
         SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked
        END
      END
      IF (@denylogin = 1)
      BEGIN -- login is denied access
       SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )
      END
      ELSE IF (@hasaccess = 0)
      BEGIN -- login exists but does not have access
       SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )
      END
      IF (@is_disabled = 1)
      BEGIN -- login is disabled
       SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'
      END
      PRINT @tmpstr
     END
    
     FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
      END
    CLOSE login_curs
    DEALLOCATE login_curs
    RETURN 0
    go
    
    EXEC sp_help_revlogin
    

    • Yanıt Olarak İşaretleyen Serkan Bark 25 Temmuz 2011 Pazartesi 13:05
    20 Temmuz 2011 Çarşamba 14:06
  • Cok Teşekkür Ederim vermiş olduğunuz Kodlar Tüm kullanıcılarımı getirdi.

     

    Yardımlarınız için Gerçekten çok teşekkür ederim.

    Affınıza Sığınarak bir şey sormak istiyorum.

     

    Şimdi Biz Nebim Winner kullanıyoruz Serverimiz Bir DC de duruyor. 100Mbit net giriyor. Bayilerimiz bağlanırken yavaşlık yaşıyorlar. Bilgisayar üzerinden herhangi bir şey yapabilirmiyiz bi SQL cümlesi vs yani ODBC den bagLanıyorlar baglantılarını hızlandıracak bir yere takılmadan geçişini sağlayacak bunun gibi bir şey ne yapılabilir acaba Bu konuda siz benden çok çok daha bilgilisiniz.

    sizden bir öneri rica ediyorum.

    20 Temmuz 2011 Çarşamba 14:46
  • Merhaba,
    Nebim Winner hazırpaket bir program oldugu için sorgularını yeniden yazmanıız tavsiye etmem ama servr üzerinde en fazla işlemciyi yoran ya da cok fazla zaman alan sorguları bulmak için DMV leri kullanabilirsin. Veya SQL Server Profiller aracını kullnabiliriz. Bunun dısında Domain control üzerine SQL server kurulması microsoft tarafından önerilmez. ayrıca SQL Server hızlandırmak için makine ve calişma kosullarına bağlı olarak bir kac ayar yapılabiir.

    Kolay gelsin 

    20 Temmuz 2011 Çarşamba 16:34
  • Merhaba,

    Yardımlarınız için teşekkür ederim. DMV leri kullanabilirsiniz demişsiniz ancak anlayamadım tam olarak ne demek istediğinizi.

    Bir de şunu sormak istiyorum size; 2 Tane Server'imiz var bunun 2 sinede SQL kurulu Aynı Databaseleri Nasıl kullandırabiliriz bunlarda yükünü azaltmak için serverin ?

    23 Temmuz 2011 Cumartesi 07:23
  • Merhaba,
    DMV yani dynamic management viewlar SQL server 2005 ile gelen ve performans istatistik gibi bir cok bilgiye erişebildiğimiz yapılardır.Örneğin aşağıdaki script ile hangi sorguların kac kere caliştiğini ne kadar sürdüğünü göre bilirsiniz ya da sorguyu biraz değiştirip çalışması en uzun suren ilk 10 sorguya bakıp onları iyilestirebilirsiniz.

    SELECT  SUBSTRING(st.text, (qs.statement_start_offset/2)+1, 
        ((CASE qs.statement_end_offset
         WHEN -1 THEN DATALENGTH(st.text)
         ELSE qs.statement_end_offset
         END - qs.statement_start_offset)/2) + 1) AS StatementText,
        last_execution_time as LastExecuted,
        last_elapsed_time/1000000.0 as ElapsedTimeInSeconds,
        execution_count as ExecCountFromLastCompile
    FROM sys.dm_exec_query_stats qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
    


    Diğer sorunuza gelince yükü azaltmak için load balacing gibi bir yapı kullanmanız gerekir fakat SQL server da doğrudan load balancing kullanılamıyor. Amam dolaylı olarak yapılabiliyor. Yani fiziksel olarak ki server arasında partitioning gibi yontemler yapılabiliyor fakat bunların kontrolu tamamen manual olarak yapılıyor.
     

    24 Temmuz 2011 Pazar 08:05