Aracılığıyla paylaş


SQL Server toplu iş iş iş veya görev zamanlama

Her örnek SQL Server bir ayrı işletim sistemi işlemidir. Her örnek eşzamanlı kullanıcıların isteklerini binlerce işlemesi gerekir.Örnekleri SQL Server Microsoft Windows iş parçacığı kullanın veya yapılandırdıysanız, bunlar değeri, eşzamanlı bu görevleri etkili şekilde yönetmek için kullanın. Her örnek SQL Server her zaman birden çok iş parçacığı Sistem işlemleri için çalışır. Bu Net-Library, her sunucu ve ağ g/Ç işlemek için bir ağ iş parçacığı Hizmet Denetim Yöneticisi ile iletişim kurmak için sinyal iş parçacığı için bir veya daha çok iş parçacığı içerir.

Anlama planlama

Her örnek SQL Server bir işletim sistemine benzer bir ortam uygulayan bir iç katmanı vardır. Bu bir iç katmanı, iş planlama çizelgeleme ve Windows çekirdeğindeki çağırmanıza gerek kalmadan eşzamanlı görevleri eşitleme için kullanılır.Bu bir iç katmanı de değeri ya da Windows iş parçacığı etkin biçimde zamanlayabilirsiniz.Her örnek SQL Server Windows iş parçacığı ya da kullanıcı sorgularını işlemek için değeri havuzu bulundurur. Bu havuz boyutu üst sınırı denetlenir en fazla çalışan iş parçacıkları sunucu yapılandırma seçeneği.

Bir istek veya 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ığınızda, BIR bağlantı kurulur.Kullanıcı, bir veya daha sonra gönderebilirsiniz Transact-SQL yürütme için ifadeler. Kullanıcı oturumu açıkça veya bağlantı sonlandırıldı bağlantı kapatıldı.

  • toplu iş
    Bir SQL toplu iş iş işlemi bir veya daha fazla kümesidir Transact-SQL ifadeleri, gönderilen bir istemci örneğine SQL Server yürütme için. Gönderilen iş birimini temsil ettiği Database Engine kullanıcılar tarafından.

  • Görev
    Göreve göre planlanır ve iş birimi temsil eder. SQL Server. Bir toplu iş için bir veya daha fazla görevi eşleyebilirsiniz.Örneğin, bir paralel sorgu, birden çok görevi tarafından yürütülür.

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

  • Fiber
    Bir Windows iş parçacığı daha az kaynak gerektiren ve içeriği kullanıcı modunda geçebilirsiniz basit bir iş parçacığı BIR fiber var.Bir Windows iş parçacığı için çok sayıda değeri eşlenebilir.

  • işçi iş parçacığı
    Işçi iş parçacığı bir mantıksal iş parçacığı temsil eder. SQL Server dahili olarak eşlenen (1: 1) için bir Windows iş olan veya hafif havuzu, ON bir fiber için etkinleştirilir. Eşleme, işçi iş parçacığı ya da bellek baskısı nedeniyle ayırmanın kadar veya bu uzun bir saat boşta korunur.Ilişki, bir iş parçacığı bir göreve, görev süresince tutulur.

Kaynakları, kullanıcı Bağlantıları'nı yönetme ve çalışan iş parçacığı

Iş parçacıkları ve görüntü kaynaklarının kullanımını basit olmasına karşın, bunlar hala kaynakları tüketebilir.Yüzlerce veya binlerce kullanıcıya bağlantı ile sistemlerinde, bağlantı başına bir çalışan iş parçacığı parçacığına sahip etkinliğini azaltmak için yeterli kaynağı tüketebilir SQL Server. Bağlantıların çoğu gerçekte çoğu istemciden alınmak üzere toplu işlemleri için bekleyerek saat harcarsınız çünkü Ayrıca, her kullanıcı bağlantısı için ayrılmış bir alt ayrılırken gerekmez.Bunun yerine, örnek SQL Server çalışan iş parçacığı havuzu kullanır. Işçi iş parçacığı havuzu yalnızca hizmete toplu işlemi, bu örnek aynı anda yürütülüyor kullanıcı bağlantılarının sayısı kadar büyük gerekir.Çıkılıyor en fazla çalışan iş parçacıkları seçeneği, varsayılan değer 0 örnek sağlar.SQL Server kullanıcı bağlantılarını, çeşitli çalışan iş parçacığı üzerinde etkili eşleştirmek için . Bu, çok fazla kaynak kulanmazlar sağlar.

SQL Server fiber için yapılandırma

Sunucu Yapılandırma seçeneği Hafif havuzu örnek olup olmadığını denetler.SQL Server Windows iş parçacığı veya bu değeri kullanır. Bu seçenek için varsayılan değer 0'dır.Bu gösterir örnek SQL Server bir Windows iş parçacığının iş parçacığı, en çok değer başına zamanlar küme, en fazla çalışan iş parçacıkları seçeneği.If Hafif havuzu is küme to 1, SQL Server değeri yerine Windows iş parçacıkları kullanır. Bu çalışan olarak adlandırılır fiber modu.Içinde fiber modu, örnek SQL Server SQL Çizelgeleyici başına bir Windows iş parçacığı ayırır ve sonra bir fiber başına kadar sonuç kümesinde değeri işçi iş parçacığı ayırır 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:Seçenek havuzu hafif kullanma.Fiber modu sıradan işlem için iş planlama çizelgeleme kullanmanızı önermeyiz.Bu, bağlam geçişi normal yararlarını engelleyerek performansı düşürebilir ve için bazı bileşenleri SQL Server fiber modunda doğru çalışamıyor. Daha fazla bilgi için bkz: Hafif havuzu.

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

Bir uygulama için bağlandığında Database Engine, buna oturum KIMLIĞI (SPID) ' atanır. Bağlantı süresince tutulan tüm bilgileri SPID ile ilişkilendirilen iç veri yapılarına yönetilir.Bir kopyası olarak SQL Server toplu iş iş işlemleri alır, istemcilerden toplu iş iş bir veya daha fazla görevlere keser ve sonra her görev bir kullanılabilir bir işçi iş parçacığı havuzu çalışan iş parçacığı tarafından ilişkilendirir. Bir çalışan iş parçacığı, görevin süresi için göreve bağlıdır.Bir çalışan iş parçacığı isteği ilişkili SQL Zamanlayıcı üzerinde çalışır.Boş bir işçi iş parçacığı varsa ve en fazla çalışan iş parçacıkları değeri örnek erişildi.SQL Server Yeni bir iş parçacığı, yeni toplu iş iş iş için ayırır. Yoksa boş iş parçacığı veya değeri yok ve en fazla çalışan iş parçacıkları değer zaten, örnek erişildi.SQL Server Yeni görev, bir çalışan iş parçacığının serbest kadar engeller.

Bir çalışan görevle ilişkili sonra son toplu iş iş iş tarafından oluşturulan sonuç kümesi, istemciye döndürülen kadar örneğin tamamlanır kadar görevle ilişkili kalır.Saat, saat, iş parçacığıçi iş parçacığı parçacığı serbest ve sonraki toplu iş parçacığı iş parçacığı iş parçacığılemle iliş parçacığıkili görevleri ile eşleştirilmiş parçacığı.

The Database Engine must actively perform work for a connection only from the saat a toplu iş is received until the sonuçlar have been returned to the istemci. Bu süre boyunca, toplu iş iş iş etkin işlemi gerektirmiyorsa zamanlar olabilir.Örneğin, olabilir, Database Engine bir okuma işlemi, geçerli bir sorgu veya kilit açmak başka bir toplu iş için bekleme için gereken veri almasını beklemeniz gerekir. Alt ilişkilendirmesi görev, hatta bazı kaynağın görev engellendiğinde korunur.

Her Database Engineişlem toplu iş iş işlemle ilişkilendirilmiş bir görev başlatılır, çalışmayı gerçekleştirmek için görevle ilişkili işçi iş parçacığı bu zamanlar. Sonra alt görev örnek için çalışma iş parçacığı tamamladı. SQL Server işçi iş parçacığı çalışmaya hazır sonraki göreve gönderir. Bir SPID bir bağlantının bağlantı ömrü sabit kalır.Uzun süre çalışan bağlantıları, birçok farklı bir çalışan iş parçacığı tarafından yürütülen tek tek bir toplu iş görevlerinin olabilir.Örneğin, ilk toplu iş iş görevlerden worker1 tarafından çalıştırılan, ancak ikinci toplu iş iş görevlerden worker2 tarafından yürütülebilir.Bazı ifadeleri paralel olarak işlenebilir.Bu durumda, bir toplu iş, birden fazla çalışan iş parçacığı tarafından aynı anda yürütülen birden çok görevi olabilir.