DataSet seri hale getirme ve uzak performansı artırma

Makale çevirileri Makale çevirileri
Makale numarası: 829740 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Bu makalede, performansı en iyi duruma getirmek için daha büyük bir .NET Framework System.Data.DataSet sınıfları anlatılır ve seri hale getirilmeye daha verimli ve daha büyük bir DataSet sınıfları serisi için en iyi duruma getirilmiş bir örnek seri hale getirme sarmalayıcı sınıf sağlar.

Daha fazla bilgi

Işlemler arasında bir System.Data.DataSet nesnesi geçirdiğinizde, .NET Framework Remoting, aktarım için seri hale getirilmeye ve DataSet sınıfı serisi için kullanılır. Bir DataSet başarılı olursa istemciye DataSet veri seri hale getirmek için sınıfından geri .NET Web hizmeti, Microsoft .NET Framework System.Xml.Serialization.XMLSerializer sınıfı dahili olarak kullanılır. BinaryFormatter sınıfı, bulunan COM + geri bir yönetilen nesnesinin bir DataSet geçirirseniz, .NET Framework Remoting tarafından kullanılır. .NET Framework tarafından kullanılan uzak mekanizması bağımsız olarak DataSet sınıfı her zaman iç veri için XML verileri seri hale getirilirken dönüştürür.

Microsoft .NET Framework 1.0 ve .NET Framework 1.1 ile bulunan DataSet sınıfı, üzerinde .NET Framework Remoting küçük miktarlarda veri (satır yüzlerce) DataSet seri hale getirilirken için verimli bir şekilde çalışır. Seri hale getirme mekanizması büyük DataSet ile (binlerce satır) verimli değildir ve büyük geçici (kısa süreli) bellek ayırmalar oluşturur. Bu bellek ayırmalarını uygulama ölçeklenebilirlik azaltın.

Not Bir geçici bellek ayırma, kodunun bazı bölümleri, işlem sırasında oluşan bir short-lived bellek ayırma ' dir. Bu nedenle, seri hale getirme sırasında uzak sırasında seri kaldırma'bir <a0>DataSet</a0> sınıfının sırasında çeşitli yönetilen nesneleri ayrılan ve dahili olarak Uzak isteği işlemek için .NET Framework Remoting tarafından ayırmanın. Ayırma ve daha büyük ve daha büyük bir yönetilen nesneleri ayırmayı kaldırma .NET bellek yönetimi sistem üzerinde ek basınca koyar ve genel ölçeklenebilirlik azaltır. Örneğin, büyük geçici bellek ayırmalarını oluşturmak çok yürütülen bir yöntem etkinleştirilmelerinde olan uygulama, yöntem çağrıları tamamlamadan önce bellek çalıştırabilirsiniz.

Büyük ölçüde seri hale getirme ve uzak daha büyük bir DataSet için düzgün tasarlanmış bir temsilci türü veya seri hale getirme sarmalayıcı sınıfları kullanarak performansı artırabilir. Bir yedek mekanizması veya bir sarmalayıcı düzenek (veya her ikisini birden) .NET Framework DataSet sınıfı ile kullanma hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn.microsoft.com/msdnmag/issues/02/12/cuttingedge
Ancak, bu makalede, bir <a0>DataSet</a0> yedek türü veya bir seri hale getirme sarmalayıcı sınıf nasıl tam bir örneğini sağlamaz.

Bu makalede, seri hale getirilmeye daha verimli ve daha büyük bir veri serisi için en iyi duruma getirilmiş bir örnek seri hale getirme sarmalayıcı sınıf içerir. Sınıf, geçici bellek ayırmalarını <a1>Uzak</a1> tipik bir DataSet karşı önemli ölçüde azaltır. Geçici bellek ayırmalarını içinde büyük iskontolarındaki indirimleri uzak uçtan uca süresini artırmak ve ölçeklenebilirliği için daha büyük bir DataSet kullanılırken artırmak.

Örnek DataSetSurrogate adlı bir seri hale getirme sarmalayıcı sınıf sağlar. DataSetSurrogate sınıf için herhangi bir DataSet istediğiniz uzak bir sarmalayıcı sınıf kullanılır. Sunucu bileşeni için DataSetSurrogate kurucu istediğiniz DataSet geçirir ve sonra DataSetSurrogate sınıfı, istemciye geri iletir. Istemci tarafında DataSetSurrogate.ConvertToDataSet yöntem DataSetDataSetSurrogate sınıfından ayıklamak için kullanılır.

DataSetSurrogate sınıfı Serializable işaretlendi ve DataSetSurrogate sınıfındaki tüm alanları da seri hale getirilebilir sınıflardır. Bu nedenle, uzak alt yapısı DataSetSurrogate nesnesini uzaktan otomatik olarak serializes ve DataSetSurrogate nesne ve tüm alanları deserializes. Anahtar seri hale getirme avantajı DataSetSurrogate sınıfı, DataSet sınıfı üzerinden DataSetSurrogate sınıfı, bir ikili dosya biçimindeki verileri serializes ' dir. Bir ikili biçimi kullanılarak seri hale getirilirken varolan DataSet XML seri hale getirme biçimi çok daha hem bellek ve CPU etkilidir.

Not Bu seri hale getirme sarmalayıcı sınıf, .NET Framework System.Runtime.Serialization.Formatters.Binary.BinaryFormatter sınıfı ne zaman kullanılması performansı yararı en üst düzeye çıkarmak için uzak. DataSetSurrogate sınıfı kullandığınızda System.Runtime.Serialization.Formatters.Soap.SoapFormatter .NET Framework sınıf kullanarak uzak olarak etkin değildir.

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Bu resmi kapatBu resmi aç
Download
Download the SurrogateSample.exe package now.Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

<a1>Erişim</a1> örnek dosyaları

C sürücüsüne, SurrogateSample.exe dosyayı bilgisayarınıza kaydedin. Buradan klasör yapısını ayıklayabilirsiniz. Ek yönergeler içeren her klasörde bir Benioku dosyası vardır.

Özellikler

Makale numarası: 829740 - Last Review: 4 Ağustos 2004 Çarşamba - Gözden geçirme: 1.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Anahtar Kelimeler: 
kbmt kbdownload kbinfo KB829740 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:829740

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com