SQL Server Varbinary (MAX): حدد مجموعة فرعية من البايت من حقل Varbinary

StackOverflow https://stackoverflow.com/questions/1288885

سؤال

ما هي الطريقة الأكثر كفاءة لقراءة جزء فقط من البيانات الثنائية من حقل فارغ (أقصى) (لا تستخدم FileStreams) في SQL Server 2008؟

عند كتابة البيانات إلى العمود، تتوفر وظيفة Varbinary.write () في T-SQL، مما يسمح بتكوين بايت مكتوب إلى الحقل تدريجيا، ولكن لا يبدو أن هناك وظيفة مماثلة متاحة لقراءة البيانات.

أنا أعرف طريقة DataReader.getBytes () في .NET والتي ستحدد البايتات فقط التي تطلبها، ولكن هل هذا يحمل أداء العلوية معها؟ أي ستحقق في SQLServer قراءة جميع البايتات في قاعدة البيانات، ثم امنح طريقة getbytes () جميع هذه البايتات لاتخاذ مجموعة فرعية من البايت المطلوبة منهم؟

شكرا على اي مساعدة.

هل كانت مفيدة؟

المحلول

انت تستخدم Substring.. وبعد يقرأ هذا مقتطفا من بيانات Varbinary الخاصة بك على الخادم، ويعيد فقط المقتطف إلى العميل.

نصائح أخرى

استخدام DataReader.GetBytes() ممكن دون النفقات العامة، afaik. ولكن عليك الاتصال ExecuteReader() مع ال CommandBehavior.SequentialAccess اختيار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top