Aracılığıyla paylaş


SQL Server toplu veya görev zamanlama

Her örnek SQL Server bir işletim sistemini ayrı işlem.Her örnek olabilecek binlerce eşzamanlı kullanıcıların isteklerini işlemesi gerekir.Örnekleri SQL Server Microsoft Windows iş parçacığı veya yapılandırdıysanız, bunlar Lifler, bu eş zamanlı görevleri verimli bir şekilde yönetmek için kullanın.Her örnek SQL Server zaman, birkaç iş parçacıkları için çalışansistem işlemleri. Bu, her sunucunun Net-Library, ağ g/Ç işlemek için bir ağ iş parçacığı ve Hizmet Denetim Yöneticisi ile iletişim kurmak için sinyal iş parçacığı için bir veya daha fazla iş parçacığı içerir.

Zamanlama anlama

Her örnek SQL Server sahip bir iç katmanı uygulayan bir ortamda benzer bir işletim sistemi.Bu iç katman programlanması ve eşzamanlı görevler Windows Çekirdeği aramak zorunda kalmadan eşitleme kullanılır.Bu iç katmanı da Lifler veya Windows iş parçacığı etkin biçimde zamanlayabilirsiniz.Her örnek SQL Server Windows iş parçacığı veya işlem kullanıcı sorguları fiberleri havuzu korurBu havuz boyutu üst sınırı tarafından kontrol en fazla çalışan iş parçacıkları sunucu yapılandırma seçeneği.

Bir istek ya da bir görevi nasıl işleneceğini anlamak için aşağıdaki temel terimleri anlamanız yararlı olacaktır:

  • Bağlantı
    Kullanıcı başarıyla oturum açtığında bir bağlantı kurulur.Kullanıcı bir veya daha sonra gönderebilirsiniz Transact-SQL deyimi yürütme.Bir bağlantı açıkça kullanıcı oturumunu kapatır veya bağlantı sonlandırıldı kapatıldı.

  • toplu iş
    sql toplu iş iş iş bir küme bir veya daha fazla Transact-SQL ifadeler gönderilen örneğine bir istemciden SQL Server için yürütme.Gönderilen iş birimini temsil eden Veritabanı Altyapısı göre kullanıcılar.

  • görev
    Bir görev tarafından zamanlanan çalışma birimi temsil eden SQL Server.Bir toplu iş için bir veya daha fazla görev eşleyebilirsiniz.Örneğin, bir paralel sorgu birden çok görevi tarafından yürütülür.

  • Windows iş parçacığı
    Her Windows iş parçacığı bağımsız yürütme mekanizması temsil eder.

  • Fiber
    Windows iş parçacığı daha az kaynak gerektirir ve kullanıcı modunda içerik geçiş yapabilirsiniz basit bir iş parçacığı fiberdir.Bir Windows iş parçacığı için birçok Lifler eşlenebilir.

  • iş parçacığı
    Çalışan iş parçacığı bir mantıksal iş parçacığı temsil eden SQL Server dahili olarak eşlenen (1: 1) için bir Windows iş olan veya hafif havuzu, bir fiber. için açık olduğundan,Eşleme bellek baskısı nedeniyle ya da iş parçacığı ayırmanın kadar veya uzun saat boşta kaldıktan korunur.Bir çalışan iş parçacığı bir göreve ilişkilendirilmesi, görev süresince tutulur.

Kaynak kullanıcı bağlantılarını yönetme ve işçi iş parçacığı

İş parçacıkları ve Lifler kaynak kullanımları hafif olmasına karşın, bunlar hala kaynaklarını tüketebilir.Sistemleriyle yüzlerce veya binlerce kullanıcı bağlantıları, bağlantı başına bir çalışan iş parçacığı olması etkinliğini azaltmak için yeterli kaynağı tüketebilir SQL Server.Bağlantıların çoğu gerçekten çok karşı alınacak toplu işlemler için bekleyen saat harcamak Ayrıca, her kullanıcı bağlantısı için ayrılmış bir alt ayırma gerekir, çünkü değil istemci.Bunun yerine, örnek , SQL Server kullanan bir havuzu çalışan iş parçacığı.Çalışan iş parçacığı havuzu yalnızca hizmete aynı toplu işlemleri yürütmeden kullanıcı bağlantıları sayısı kadar büyük olması gerekir saat bu durumda.Bırakarak en fazla çalışan iş parçacıkları seçeneği varsayılan değer 0 verir örnek , SQL Server eşlemek etkin kullanıcı bağlantıları üzerinden birden fazla çalışan iş parçacığı.Bu, çok fazla kaynak kulanmazlar sağlar.

Lifler için sql Server'ı yapılandırmak

Sunucu Yapılandırma seçeneği hafif havuzu örnek olup olmadığını kontrol SQL Server kullanan Windows iş parçacığı veya Lifler.Bu seçenek için varsayılan değer 0'dır.Bu gösterir örnek SQL Server başına iş parçacığı, değeri kadar Windows iş parçacığı zamanlar küme , en fazla çalışan iş parçacıkları seçeneği.If lightweight pooling is set to 1, SQL Server uses fibers instead of Windows threads.Bu tarzda olarak adlandırılır fiber modu.Fiber modunda, örneğini SQL Server sql Zamanlayıcı başına bir Windows iş parçacığı ayırır ve daha sonra iş parçacığı, değeri kadar her bir fiber ayırır küme de en fazla çalışan iş parçacıkları seçeneği.An instance of SQL Server uses the same algorithms to schedule and synchronize tasks when it is using either Windows threads or fibers.SQL Server Express does not support fibers.Daha fazla bilgi için bkz: Basit seçenek havuzu kullanma. Fiber modu rutin işlem. için zamanlama kullanmak önerilmezBu içerik geçişi normal faydaları engelleyerek performansı düşürebilir çünkü nedeni ise bazı bileşenleri, SQL Server olamaz işlev doğru şekilde fiber modu.Daha fazla bilgi için bkz: hafif havuzu.

Toplu veya görev zamanlama nasıl çalışır?

Bağlandığında bir uygulama Veritabanı Altyapısı, oturum kimliği'ni (SPID) atanır.Bağlantı süresince tutulan tüm bilgileri, iç veri yapılarını bir SPID ile ilişkili olarak yönetilir.Tablosunun örnek olarak SQL Server toplu iş iş işlemleri alır istemcilerinden, toplu iş iş bir veya daha fazla görev keser ve sonra her görev kullanılabilir bir parçacığı havuzundan bir çalışan iş parçacığı. ilişkilendirirBir iş parçacığı etkin kalma süresi görevin göreve bağlıdır.Bir iş parçacığı istek ilişkili sql Zamanlayıcı üzerinde çalışır.Ücretsiz işçi iş parçacığı varsa ve en fazla çalışan iş parçacıkları değeri değil ulaşıldı, örnek , SQL Server ayıran yeni bir çalışan iş parçacığı yeni toplu iş.Yoksa hiç boş iş parçacığı veya Lifler ve en fazla çalışan iş parçacıkları değeri zaten ulaşıldı, örnek , SQL Server bir çalışan iş parçacığı serbest kadar yeni görev engeller.

İşçi bir görevle sonra son toplu iş iş iş tarafından oluşturulan sonuç kümeleri için döndürülen kadar Örneğin, tamamlanana kadar görevle kalır istemci.AT, saat, iş parçacığı serbest ve sonraki toplu iş ile ilişkili görevleri ile eşleştirilmiş.

The Veritabanı Altyapısı must actively perform work for a connection only from the time a batch is received until the results have been returned to the client.Bu süre boyunca ne zaman toplu iş iş etkin işlemi gerektirmiyorsa zamanlar olabilir.Örneğin, olabilir ne zaman Veritabanı Altyapısı bir okuma işlemi için geçerli sorguyu veya başka bir toplu iş serbest bekle gerekli verileri almak için beklemek gerekirkilit. İşçi Birliği göreve bile görev üzerinde bazı engellendiğinde tutulur kaynak.

Her Veritabanı Altyapısı ilişkili bir görev bir toplu iş iş iş başlatıldığında, bu zamanlar iş parçacığı gerçekleştirmek için görev ile ilişkiliçalışmıyor. Sonra işçi iş parçacığı örnek görev için çalışma tamamlandı SQL Server gönderir iş parçacığı sonraki göreve hazırçalışmıyor. Bir SPID bir bağlantının bağlantı ömrü sabit kalır.Birçok farklı alt iş parçacığı tarafından yürütülen tek tek toplu iş iş görevlerini uzun süre çalışan bağlantıları olabilir.Örneğin, ilk toplu iş iş görevlerden worker1 tarafından yürütülen, ancak ikinci toplu iş iş görevlerden worker2 tarafından yürütülen.Bazı ifadeleri paralel olarak işlenebilir.Bu durumda, bir toplu iş iş işlemi aynı anda birden fazla çalışan iş parçacıkları tarafından yürütülen birden çok görevi olabilir saat.