DataSource Controls :: Test The Performance Of When The Query Is Included Directly In The SqlDataSource?
Feb 16, 2011
I have a query that I want to test the performance of when the query is included directly in the SqlDataSource versus when I call a stored procedure. Does anyone have suggestions on how I would be able to closely watch the actual steps here? I was thinking of turning on tracing and adding Trace.Write for each of the events that fire along the way. This doesn't seem efficient and I wanted to see if there was a better approach.
1. I have a GridView on my page and it uses sqldatasource with parameterized query. What I want to do is, on page load (where nothing has been selected so no parameter supplied), I want it to query everything (something like SELECT * FROM [this_table]) but since my SelectCommand is something like
SELECT * FROM [this_table] WHERE [this_column] = @someParameters AND [that_column] = @someParameters.
Can I play around with default value to achieve something like that but how ? Now, when the page loads, it doesn't show anything (No Gridview).
2. On my page, I made something like (username, gender, address, and more) and one single search button. That means, no single control enable auto postback. What I am trying to accomplish is building dynamic query
(if username specifed -> SELECT * FROM [this_table] WHERE [username] LIKE @username).
If both username and gender are specified (SELECT * FROM [this_table] WHERE [username] LIKE @username AND [gender] = @gender) and you know the rest. How can I do this using GridView and SqlDataSource ? To my knowledge, I can only specify one SELECT statement in a sqldatasource.
I have an editable grid where user can add/edit data. They also have the option to load previously entered data from last month. When the user then clicks save, i want to readd this newly modified data as a new record for this month. So basically I want to call the insertcommand, but it does not work. My 'save' method just 'updates' the records.
Providing sqldatasource, grid and save method <asp:SqlDataSource ID="SqlDataSourceLoadActivities" runat="server" [code].....
I have a strange problem...I am programatically adding an SQL SELECT query to my SqlDataSource that my GridView is bound to. If I use the follwing statement it works fine:
[Code]....
But if I use the following one, the gridview fails to load. The only way that this is different is it uses RTRIM and CAST on one of the fields:
[Code]....
I don't understand why this can be. If I try the statement exactly how it is in the query builder and run it it returns the rows no problem.
I'm developing an ASP.NET application which has allows users to search for other users based on their name. This search is done using Linq to SQL. At the moment, I've only got 10 or so users in my database, so I can't really test the efficiency of my search query. I'm new to testing and such, but what is the best way to simulate 100/1000/10000 users on a query? Is there a tool (preferably free) that would allow me to perform tests to see how quickly the database can be searched if it had x number of users?
I have a gridview which I connect by C# and SqldataSource. I use asp.net 2.0 - 3.5.
I want to parameterized the queries and how do I do this in the C# file ? how do I set the selectparameters in C# ?. I do not want to do this in the aspx fil.
My code in C# is:
SqlDataSourceMachineName.SelectParameters.Clear(); SqlDataSourceMachineName.SelectCommand = "Select MachineName from tblMachine inner join tblLocation on tblMachine.MachineLocationID = tblLocation.LocationID where tblLocation.LocationName = 'New York' and tblMachine.StatusID = '1'";
Currently, I have long script which does major processing and then puts data into temp table.
Finally I read data from this temp table to show on the chart, based on user's selection of parameter. So I can divide my query into two parts and while I am researching this,
Is it possible to do processing in one Datasource and read table from second datasource?Is it even possible?
If not, what is recommended method for this (breaking large processing into small one)?
<asp:sqldatasource id="SqlDataSourceX" runat="server" connectionstring="<%$ ConnectionStrings:MyConn%>" providername="System.Data.SqlClient" selectcommand="SELECT ItemNum, MIN(DateAdded) as [DateAdded] FROM Items WITH (NOLOCK) WHERE [DateAdded] between @DateFrom AND @DateTo
[Code]....
When I call select in codebehind, after 30sec it throws timeout expired SqlException:
[Code]....
again , this select took up to 3 sec to be executed. In application I tried to use SqlConnection and SqlTableAdapter instead of SqlDataSource, with the same query, and again it took up to 3 sec.
If I choose tighter interval (e.g '2011-01-20 00:00:00' - '2011-01-21 00:00:00') , there is no timeout exception, so I know that sqldatasource select is executed correctly. So the conclusion is that sql server is not using index while executing query sent from sqldatasource, but is using index whenever else. I have also checked the index statistics on sql server and it is like that. In profiler i can see slight difference between this two cases. As for SqlDataSource, in events table, in first column "EventClass" after 30 sec, there is this: "RPC:Completed" and application throws timeout. If i use SqlConnection and SqlTableAdapter then at the same place there is this: "SQL:BatchStarting" and "SQL:BatchCompleted" and application does not throws timeout(the index has been used).
what is so special on SqlDataSource connection, that Sql Server performs differently compared to other types of connections?
I am not sure if this is the right forum. I can not find a forum for LINQ.
I am working on an application using LINQ. Application performance is not up to par and my tests show that it is LINQ queries that are slow. I was wondering if anybody can recommend where I can find an article about optimizing LINQ performance maybe by compilation or other methods.
What ive been using now is getting datas in code-behind, passing datasource into a Session, re-binds it to a gridview whenever there's paging/sorting needed. What i want to know is what is better if its performance we are talking about?
Is it datasource into a session Or SqlDataSource for which I know whenever paging/sorting needed is that sqldatasource opens up a DB connection to get the datas again?
I have a SQL Data Source that displays records after going through the Query Builder and select "Test Query" yet when I save it, go back to the design mode and select View in Browser I get nothing but a blank screen.
I have a sqldatasource control that I want to get the field values from as it is selecting. Is there any way to do this in the dsControl_Selecting event for each record without binding it to any control or formview? I would like to call dsControl.DataBind and retrieve the field values.
I'm trying to develop a small application that test how many requests per second can my service support but I think I'm doing something wrong. The service is in an early development stage, but I'd like to have this test handy in order to check in time to time I'm not doing something that decrease the performance. The problem is that I cannot get the web server or the database server go to the 100% of CPU.
I'm using three different computers, in one is the web server (WinSrv Standard 2008 x64 IIS7), in other the database (Win 2K - SQL Server 2005) and the last is my computer (Win7 x64 ultimate), where I'll run the test. The computers are connected through a 100 ethernet switch. The request POST is 9 bytes and the response will be 842 bytes.
The test launches several threads, and each thread has a "while" loop, in each loop it creates a WebRequest object, performs a call, increment a common counter and waits between 1 and 5 millisencods, then it do it again:
If I run the test neither of the computers do an excesive CPU usage. Let's say I get a X requests per second, if I run the console application two times at the same moment, I get X/2 request per second in each one... but still the web server is on 30% of CPU, the database server on 25%...
I've tried to remove the thread.sleep in the loop, but it doesn't make a big difference.
I'd like to put the machines to the maximun, to check how may requests per second they can provide. I guessed that I could do it in this way... but apparently I'm missing something here...
I needed to test the performance of my site on a remote server (do not have IIS access). I am also using Visula Web Developer / Studio Professional 2008 (But not team system version).
I watched old videos that suggest to test the asp.net website load using Microsoft Web Application Stress Tool. But there is a broken link to get the download. tool to test website performance?
I have a web performance test which contains a request whose response is greater than 5MB, and the Extract Hidden Fields rule fails to find (necessary and required!) hidden fields in the response. Response header contains
HTTP/1.1 200 OK Transfer-Encoding : chunked Vary : Accept-Encoding, User-Agent Cache-Control : private Content-Type : text/plain; charset=utf-8 Date : Sat, 19 Feb 2011 15:24:38 GMT Server : Microsoft-IIS/6.0 X-AspNet-Version : 2.0.50727 X-Powered-By : ASP.NET
Other than that and the response size, there is nothing remarkable about this scenario. In fact, this same test succeeds when a smaller data set is used. I suspect the Web Performance Test framework is having issues parsing the "chunked" encoding or sheer volume of data. Ahem, how can I obtain these required hidden fields from my response? ie resolutions, work arounds, converting auto-extraction to manual, etc.
I have a table with a varbinary(MAX) column. I want to use the FileUpload control to save the file directly there by a stored procedure. How do you do it without using SaveAs to create a temporary file first?
I've been wrestling with this for a while. What I want to do SEEMS like it would be very simple, buy nothing about it so far has been. Any assistance would be absolutely outstanding.Basic concept of what I want to do is...
i have two sqldatasource controls. one i use to display data in textbox's ,filter'd by a select parameter in page behind code. Once checked, i want to copy this data to the other datasource ,by selecting checkbox.Then display this data in detailsview control.
At present the two datasource controls declared , render data to the page simultaneously during pageload. I want to first check data in textbox's from first source, before second datasource is rendered to screen. note, both are filtered by a page variable. i wish to leave the textbox datasource control in situ, as other controls and code depend on it.The other detailsview datasource is my problem?
I have got a table in SQL Severs as following, which contains sales data (approx 10m records), the indexes and primary keys are SalesDate, StoreNo and ItemNoSalesDate StoreNo ItemNo SalesQtyWhen I am querying the table for a given item and store's sales for the last 7 days, if I use the query:
[Code]....
The query runs almost instantly, obviously using IN is the faster mehtod here, but I have read elsewhere that using BETWEEN is the quicker method, can anyone confirm?
I have one online school management application developed on asp.net 3.5 using Linq,
Now in my database i have main three talbes which uses in many store procedures,functions,linq join query
CourseMst - Master Table Have CourseID P.K. StudentMst - Master Table Have StudentID P.K. Student_Course - Child Table Have StudentCourseID P.K StudentID F.K. Reference To StudentMSt CourseID F.K. Reference To CourseMSt
Now i want to increse speed of my application for those page which have query or sp related to above tables, I want to know about indexing procedure that how to apply indexing and on which field i have to apply indexing