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/
