PC Review Forums Newsgroups Microsoft DotNet Microsoft ADO .NET Performance to copy blob from SqlDataReader

Reply

Performance to copy blob from SqlDataReader

 
Thread Tools Rate Thread
Old 04-05-2008, 03:45 AM   #1
Roy
Guest
 
Posts: n/a
Default Performance to copy blob from SqlDataReader


I have a SqlDataReader dr returned from a SqlCommand. dr contains only one
column of 2000 varbinary(max) records (contains 24 bytes in my testing
case). The following code takes 1 second to
run. I would like to improve the performance. Any suggestions

while (dr.Read())
{
list.Add(dr[0] as byte[]);
}

where list is of List<byte[]>.

  Reply With Quote
Old 04-05-2008, 07:52 PM   #2
Mary Chipman [MSFT]
Guest
 
Posts: n/a
Default Re: Performance to copy blob from SqlDataReader

I don't know where the bottleneck is -- possibly the list? This topic
describes different coding techniques for retrieving varbinary(max)
data:

http://msdn.microsoft.com/en-us/library/a1904w6t(VS.80).aspx

--Mary

On Sat, 3 May 2008 19:45:00 -0700, Roy <Roy@discussions.microsoft.com>
wrote:

>I have a SqlDataReader dr returned from a SqlCommand. dr contains only one
>column of 2000 varbinary(max) records (contains 24 bytes in my testing
>case). The following code takes 1 second to
>run. I would like to improve the performance. Any suggestions
>
>while (dr.Read())
>{
> list.Add(dr[0] as byte[]);
>}
>
>where list is of List<byte[]>.

  Reply With Quote
Old 04-05-2008, 10:19 PM   #3
Roy
Guest
 
Posts: n/a
Default Re: Performance to copy blob from SqlDataReader

I don't think it is the List.Add(...). I have tested by replacing the list
with an array and it does not affect. I think the bottleneck is the copy of
the bytes from data reader to a local. I don't know which is the way for best
performance for a data reader column with underlining varbinary(max) type.

"Mary Chipman [MSFT]" wrote:

> I don't know where the bottleneck is -- possibly the list? This topic
> describes different coding techniques for retrieving varbinary(max)
> data:
>
> http://msdn.microsoft.com/en-us/library/a1904w6t(VS.80).aspx
>
> --Mary
>
> On Sat, 3 May 2008 19:45:00 -0700, Roy <Roy@discussions.microsoft.com>
> wrote:
>
> >I have a SqlDataReader dr returned from a SqlCommand. dr contains only one
> >column of 2000 varbinary(max) records (contains 24 bytes in my testing
> >case). The following code takes 1 second to
> >run. I would like to improve the performance. Any suggestions
> >
> >while (dr.Read())
> >{
> > list.Add(dr[0] as byte[]);
> >}
> >
> >where list is of List<byte[]>.

>

  Reply With Quote
Old 05-05-2008, 06:27 AM   #4
Cor Ligthert[MVP]
Guest
 
Posts: n/a
Default Re: Performance to copy blob from SqlDataReader

Roy,

>I don't think it is the List.Add(...). I have tested by replacing the list
> with an array and it does not affect. I think the bottleneck is the copy
> of
> the bytes from data reader to a local. I don't know which is the way for
> best
> performance for a data reader column with underlining varbinary(max) type.
>


If that would be the case, then why not with an integer, however in my idea
can reading blobs as they have a little bit large size be terible slow.

Cor

  Reply With Quote
Reply



Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off