I rewrote my test page using two repeaters.
One I filled with the GetRows approach, the other using a dataAdapter.

The GetRows() took twice as long as the dataAdapter method.

8 seconds vs 4 secs.

I had 25,000 rows in my SQL SVR2000 table.

The table schema is
Items
(
  Item varchar(50),
  Price Money,
  Qty Int
)
Dallas

Quoting "Falls, Travis D (HTSC, CASD)" <[EMAIL PROTECTED]>:

> It just seems (as you and many others have said) that returning a page that
> is going to be circa 2.5MB is a really bad idea.  You are going to have all
> sorts of calls and complaints.  Just think about how the browser renders
> nested tables... it is going to take for ever even if you optimize the query,
> html output, and data access layer.  I would stick with "it can't be done
> effectively" personally.
> 
> Travis D. Falls | Consultant   RAFT.Net   IT | 860.547.4070 |
> [EMAIL PROTECTED]
> 
> 
> -----Original Message-----
> From: [email protected]
> [mailto:[EMAIL PROTECTED] Behalf Of
> [EMAIL PROTECTED]
> Sent: Wednesday, December 21, 2005 1:09 PM
> To: [email protected]
> Subject: Re: [AspNetAnyQuestionIsOk] Large datasets bound to a repeater
> 
> 
> I don't know.  Why would this make it faster?  I will try it though.
> 
> -------------- Original message -------------- 
> From: [EMAIL PROTECTED] 
> Why don't you try it!!!!
> 
> 
> Quoting Peter Brunone <[EMAIL PROTECTED]>:
> 
> > How is that going to make 2.5MB of data come down the wire faster?
> > 
> > On 12/21/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > >
> > > Use an ASPCompat page with Old ADO Connection and Recordset
> > > Use the GetRows() function to pop the data into an Array
> > >
> > > <%@ Page Language="vb" AutoEventWireup="false" ASPCompat="true"
> > > Codebehind="RepeatThis.aspx.vb" Inherits="COURTS.RepeatThis"%>
> > >
> > > This CODE WORKS. I JUST TESTED IT!!!!!!
> > > Modify it for YOUR Application
> > >
> > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> > > System.EventArgs) Handles MyBase.Load
> > >         'Put user code to initialize the page here
> > >
> > >         Dim dbConn As Object
> > >         Dim rs As Object
> > >         Dim arrRows As Object
> > >         Dim intX As Integer
> > >         Dim intY As Integer
> > >
> > >         ' remember to USE an ADO connection string;for ease of use, I
> > > created
> > > an ODBC DSN
> > >         ' from the ODBC Admin Interface
> > >         dbConn = Server.CreateObject("ADODB.Connection")
> > >         dbConn.Open("DSN=MyDSN;Uid=MyUser;Pwd=MyUser")
> > >         rs = dbConn.Execute("SELECT Item, Price, Qty FROM Items")
> > >         arrRows = rs.GetRows()
> > >         rs.Close()
> > >         dbConn.Close()
> > >
> > >         ' creat the datasource table for the repeater
> > >         Dim _table = New DataTable
> > >
> > >         ' add the columns needed to the table; repeat as necessary
> > >         Dim _col1 As New DataColumn
> > >         Dim _col2 As New DataColumn
> > >         Dim _col3 As New DataColumn
> > >
> > >         _col1.ColumnName = "Item"
> > >         _col1.DataType = System.Type.GetType("System.String")
> > >
> > >         _col2.ColumnName = "Price"
> > >         _col2.DataType = System.Type.GetType("System.String")
> > >
> > >         _col3.ColumnName = "Qty"
> > >         _col3.DataType = System.Type.GetType("System.String")
> > >
> > >         ' add the columns to the table
> > >         _table.Columns.Add(_col1)
> > >         _table.Columns.Add(_col2)
> > >         _table.Columns.Add(_col3)
> > >
> > >         ' create a datarow
> > >         intY = UBound(arrRows, 2)
> > >         For intX = 0 To intY
> > >             Dim _row As DataRow
> > >             _row = _table.NewRow()
> > >             _row("Item") = CType(arrRows(0, intX), String)
> > >             _row("Price") = CType(arrRows(1, intX), String)
> > >             _row("Qty") = CType(arrRows(2, intX), String)
> > >             _table.Rows.Add(_row)
> > >         Next
> > >         Repeater1.DataSource = _table
> > >         Page.DataBind()
> > >
> > >     End Sub
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > Quoting Dean Fiala <[EMAIL PROTECTED]>:
> > >
> > > > In this instance, changing from one version of SQL Server to another
> > > > is not going to get you a noticable performance boost.  This is a
> > > > display and rendering problem, not a retrieval problem.
> > > >
> > > > On 12/21/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > > > > I agree.  I pretty much already knew the answer but figured I would
> > > give
> > > > you guys a shot.  Usually I would do something like a treeview
> > structure
> > > with
> > > > product category 1.  The user would click on a category 1 and then
> > > select
> > > > Category 2.  When category 2 is clicked I would fetch and display the
> > > 300 or
> > > > so products.  But management is being kind of hardheaded on this one. >
> I
> > > have
> > > > already given them sorting and searching capabilities to easily find
> > > > products.  And like I said, presently I display 20 rows at a time and
> > > allow
> > > > them to click the Next button to fetch the next 20 rows.  It is all
> > very
> > > > fast.  I will just have to let them know that this impossible.  I am
> > > going to
> > > > try running my database using SQL 2005 though.  I assume it is faster
> > > but I
> > > > don't think this is the solution.
> > > > >
> > > > > -------------- Original message --------------
> > > > > From: Dean Fiala <[EMAIL PROTECTED]>
> > > > > There are things you could try, like loading only a minimum-data
> row
> > > > > that has a few key pieces of info about the product and then when
> the
> > > > > user selects the row either expanding it to show all product data
> via
> > > > > AJAX or opening it on a detail page.
> > > > >
> > > > > But the basic problem is that:
> > > > > No one actually needs or wants to look at 25,000 individual rows.
> > > > > That's not a user interface that's a useless interface.  They want
> to
> > > > > find what they're looking for, not have to hunt for it, or even
> wait
> > > > > for it to load.
> > > > >
> > > > > It's a whopping huge amount of html.  At a conservative 100
> bytes/row
> > > > > it's 2.5 MB web page!  So for a poor slob on a dial-up connection
> is
> > > > > going to be able to get a cup of coffee while it loads. Even a high
> > > > > speed connection is going to run into time-out issues and cranky
> > > > > browsers.
> > > > >
> > > > > On 12/21/05, bh0526 <[EMAIL PROTECTED]> wrote:
> > > > > > Hi all,
> > > > > >
> > > > > > I am rewriting an old VB 6 app to ASP.net / VB.Net.  The
> > application
> > > > > > is for some commercial software we sell.  I am having some
> problems
> > > > > > since I have to work with enormous amounts of data.  For example,
> > > > > > the Products table is 360,000 rows.
> > > > > >
> > > > > > I am presently working on a page that allows the user to select
> one
> > > > > > or more products and then run some statistical reports against
> > these
> > > > > > selected products.  I am using the repeater control to display
> the
> > > > > > products since this loads much faster than the datagrid.  I also
> > > > > > fetch all products that start with the letter "A" when the page
> > > > > > loads.  Above my repeater, I have linkbuttons like A B C D thru
> Z.
> > > > > > The user clicks one of these letters and the products starting
> with
> > > > > > this letter are displayed.  This is fine but some letters like
> "C"
> > > > > > have about 25,000 products.  I usually get a timeout error before
> > > > > > the repeater is filled.  Or it just takes way too long.  So I
> made
> > > > > > my repeater only display 20 rows at a time and then have Next /
> > Prev
> > > > > > buttons to get rows as I need them.  Now everything is very fast.
> > > > > > The problem is that management does not like this.  They are ok
> > with
> > > > > > the letter links but if the user clicks on "C" then they want all
> > > > > > the "C" products displayed so that the user can scroll quickly to
> > > > > > the bottom.  I also have textboxes for searching and my headings
> > are
> > > > > > links that when clicked will sort by that field.  My problem is
> > > > > > loading 25,000 rows of data on a web page.  Is there anything at
> > all
> > > > > > I can do to make this work?
> > > > > >
> > > > > > Thanks,
> > > > > > Bob
> > 
> > 
> > [Non-text portions of this message have been removed]
> > 
> > 
> > 
> > 
> >  
> > Yahoo! Groups Links
> > 
> > 
> > 
> >  
> > 
> > 
> > 
> 
> 
> 
> 
> SPONSORED LINKS Basic programming language Computer programming languages
> Programming languages 
> Java programming language 
> 
> 
> 
> YAHOO! GROUPS LINKS 
> 
>  Visit your group "AspNetAnyQuestionIsOk" on the web.
>   
>  To unsubscribe from this group, send an email to:
>  [EMAIL PROTECTED]
>   
>  Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 
> 
> [Non-text portions of this message have been removed]
> 
> 
> 
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
> 
> 
> *************************************************************************
> This communication, including attachments, is
> for the exclusive use of addressee and may contain proprietary,
> confidential and/or privileged information.  If you are not the intended
> recipient, any use, copying, disclosure, dissemination or distribution is
> strictly prohibited.  If you are not the intended recipient, please notify
> the sender immediately by return e-mail, delete this communication and
> destroy all copies.
> *************************************************************************
> 
> 
> 
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 




------------------------ Yahoo! Groups Sponsor --------------------~--> 
Most low income homes are not online. Make a difference this holiday season!
http://us.click.yahoo.com/5UeCyC/BWHMAA/TtwFAA/saFolB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/AspNetAnyQuestionIsOk/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to