SQL Server Varbinary (MAX): حدد مجموعة فرعية من البايت من حقل Varbinary
-
18-09-2019 - |
سؤال
ما هي الطريقة الأكثر كفاءة لقراءة جزء فقط من البيانات الثنائية من حقل فارغ (أقصى) (لا تستخدم FileStreams) في SQL Server 2008؟
عند كتابة البيانات إلى العمود، تتوفر وظيفة Varbinary.write () في T-SQL، مما يسمح بتكوين بايت مكتوب إلى الحقل تدريجيا، ولكن لا يبدو أن هناك وظيفة مماثلة متاحة لقراءة البيانات.
أنا أعرف طريقة DataReader.getBytes () في .NET والتي ستحدد البايتات فقط التي تطلبها، ولكن هل هذا يحمل أداء العلوية معها؟ أي ستحقق في SQLServer قراءة جميع البايتات في قاعدة البيانات، ثم امنح طريقة getbytes () جميع هذه البايتات لاتخاذ مجموعة فرعية من البايت المطلوبة منهم؟
شكرا على اي مساعدة.
المحلول
انت تستخدم Substring.. وبعد يقرأ هذا مقتطفا من بيانات Varbinary الخاصة بك على الخادم، ويعيد فقط المقتطف إلى العميل.
نصائح أخرى
استخدام DataReader.GetBytes()
ممكن دون النفقات العامة، afaik. ولكن عليك الاتصال ExecuteReader()
مع ال CommandBehavior.SequentialAccess
اختيار.