I'm after some thoughts on how people go about calculating database load for the purposes of capacity planning. I haven't put this on Server Fault because the question is related to measuring just the application rather than defining the infrastructure. In this case, it's someone else's job to worry about that bit! I'm aware there are a huge number of variables here but I'm interested in how others go about getting a sense of rough order of magnitude. This is simply a costing exercise early in a project lifecycle before any specific design has been created so not a lot of info to go on at this stage.
The question I've had put forward from the infrastructure folks is "how many simultaneous users". Let's not debate the rationale of seeking only this one figure; it's just what's been asked for in this case! This is a web front end, SQL Server backend with a fairly fixed, easily quantifiable audience. To nail this down to actual simultaneous requests in a very rough fashion, the way I see it, it comes down to increasingly granular units of measurement:
Total audience
Simultaneous sessions
Simultaneous requests
Simultaneous DB queries
This doesn't account for factors such as web app caching, partial page requests, record volume etc and there's some creative license needed to define frequency of requests per user and number of DB hits and execution time but it seems like a reasonable starting point. I'm also conscious of the need to scale for peak load but that's something else that can be plugged into the simultaneous sessions if required. This is admittedly very basic and I'm sure there's more comprehensive guidance out there. If anyone can share their approach to this exercise or point me towards other resources that might make the process a little less ad hoc
Among methods: static variables, viewstate, session and cache for avoiding on loading repeatedly and less making queries to the database. What do you think the best method of the 4 above? I Think Cache is the best one? Or any other methods better in Asp.net 3.5 or higher?
I need to do some performance testing for an ASP.NET MVC application and specifically want to measure how many database queries each HTTP request results in. The data access layer is using LINQ-to-SQL. I'd like to be able to automate the tests so am looking for a good way to be able to do a before and after count of the number of SQL queries. The possibilities I can think of are: A performance monitor counter for the ASP.NET process, A system table in the MSSQL database that can be queried before and after each page request, A property somewhere in the System.Data.SQLClient namespace that tracks the number of queries executed by the process. Has anyone done this before and can perhaps point my down the right path?
I know how to create an AccessDataSource on my aspx page and how to use the datasource to populate gridviews, etc. But I want to know how I can programmatically populate a dataset by querying an Access database. How do I make queries to an Access database programmatically?
We have an ASP.NET application that uses SQL statements, where table names are unqualified. When compiled, it works fine, but when uncompiled, it complains and errors out, saying these tables dont' exist. (Qualified name looks like Select * from MyDatabase.mySchema.MyTable; Unqualified like Select * from MyTable) If you try these queries on the database, by yourself, it will take only the qualified names. What's going on? I thought Compiled vs Uncompiled apps should perform the same way codewise.
A sample linq query from MSDN: var expensiveInStockProducts = from p in products where p.UnitsInStock > 0 && p.UnitPrice > 3.00M select p; Does this query select EVERY column from the database table immediately, or does it return some sort of pointer that retieves the actual column data on demand? ie. If there are 50 columns in my table and I only use a single p.UnitsInStock in my actual code, then am I retrieving 50 times more data than I expected?
We have a web application using VS 2008, c#. We try to filter siteMap nodes based on security roles. We have our customized the mether GetRolesForUser() in RoleProvider class to determine a user's role. In this method, roles will be returned by querying an SQL Server database. However, we found that each time a page was loaded/refershed, this GetRolesForUser() was called, and the database would be queried. This is too MUCH and expensive. We thought the roles should be queried only once when a user logs in. After that, role info should be stored somewhere for this user, rather than query DB all the time.
anyone know that can we used select statement to called queries table in database or not?usually people used select statement to called common table in database.
I am very new on the C# and ASP scene and am after some advice on how to handle a senario. I have a asp website with 10 text boxes. These boxes form the basis of a user completed parameter selection. There is a button that will fire the query. The compliction is that some of the textboxes may be left blank and any combination may be filled in.
The only way i could think to do this is with countless IF statements. The user clicks the button and the process checks out the senarios and runs the corresponding SQL statement. The problem with this is that there are a vast amount of possible senarios depending on whether the user completes one box, all boxes, or a mix of any of them. The SQL query is the same for each senario bar the WHERE statement which changes depending on which text boxes are filled in. Is there another way of doing this or do i really need to write every possible senario out in full?
I have two text boxes I need a functionality like If I am typing in 1st text box The text should be getting displayed in 2nd text Box with some other font. This is a web Application. And so Text Box doesn't have OnKeyDown event? Do you suggest any way to implement this?Note: I don't want to implement this with Javascript.
In general terms, which way will require more server processing power and which way will return faster queries... if there is even a difference. The client's database is still on the dev MS SQL server but is essentially but the client has decided they want to collect two more fields of information. Both fields are going to be collection text data and probably varchar(300) will be sufficient for the column data types. Would it ultimately be more efficient to
Add two additional columns in the main table so the data is entered directly into each record, or Add an additional table (or two) with a foriegn key to the primary table that holds the info for each new field The SELECT statement for the main table could be modified to either add the new columns (a.NewColumn1 and a.NewColumn2) or it could contain nested SELECT statements that pull in the data from the other tables. Custom daisy-chained Insert or Update statements would be no problem and a cascade Delete relationship would take care of any deletions. I'm just trying to figure out which would be better from a performance standpoint?
I am trying to prevent multiple simultaneous logins in my web application. I want to signout all/any previous authentications of a user when they login. Such that the current login remains the only one.
How do I go about calling FormsAuthentication.SignOut() for a particular user to invalidate any existing authentications.I have tried searching everywhere but no answers, only theories.
I have an asp.net 3.5 web application for which the client has requested that the security model allows (a licensing model) restricting the number of simultaneous users logged onto the website. I am not sure how this is achievable - I'm currently controlling membership via the AspNetSqlMembershipProvider.
I have to test my asp.net web application for performance when there are simultaneous requests for the web site in my developer machine before deploy in production. How can I achieve this using Visual Studio?.(without using third party tools preferably Visual studio 2010 professional edition
I'm using IIS 7.0 on WS2008. I've implemented a simple login page that redirects to another simple page showing the Request.ServerVariables key/values. I'm using the built-in SQL membership provider. The website is on a DEV machine and there are no users on it.
When I login at the same time with 2 different users from 2 different locations (2 different public addresses) then one of the Request.ServerVariables page is the same as the other. That includes the client IP address which is then completely wrong. The authentication as well as the other cookies are wrong as well.
I checked the IIS log and it shows the correct client address as well as the correct login name. If I then reload the wrong page I get the correct data. Is there some concurrency issue in ASP.NET? I disabled the session and caching but I still get the same behaviour.
So,my question is that why we basically use @ before the sql query.If I don't use @ before that then it again work fine (does not give any error), then what is need of using "@"?
I've added a database to one of my projects and I'm wondering how I can get intellisense for them.
Basically I have no how I can query the database that I've added to the project. I know SQL fairly well, but I don't know how I can write queries within vb.net and have them display.
I can get, so intellisense will probably be invaluable.
I have a query which gets the text from a textbox and inputs it into the database.
It works fine if the value is something like Taylor but errors when it's O'Neill because the apostrophe gives a syntax error unclosed quotation mark Is there a way to add O'Neill to the database with the apostrophe still there?
I don't want to replace it with a double single quote I want it to be put in the database as it shows.
I am using linQ for get these data to silverlight so I cant use execute query in silverlight and have to go with LInQ. can someone point me for easier way to convert similar queries or any tips.
In my web application, I need to run a lot of sql queries for a specific operation. For example, first I run a select command , get results. If they fulfill my requirement, I insert some values by insert command, else I update and insert...and so on. I need to execute 8-10 commands for each specific operation. For this , I have created a <asp:Sqldatasource> in aspx page and I run queries by SqlDataSource1.Select, SqlDataSource1.InsertCommand etc. I dont think , its a right approach . Further, I need to preserve data consistency. Say my 5 commands executes successfully and then sql or something else, throws an error and 5 commands left untouched. Then, it will create me a problem. And my current logic will fail, as it works on step by step basis.
When i see MVC Music store. They have used ADO.NET entity data model and used LINQ language to perform operation in DB.. Is there any way to use normal sql queries?
I'm going to try to use the WebClient object in .NET to grab the response querystring values sent back by the resource.
I'm familiar with grabbing xml, json, etc. but typically I haven't worked with many NVP type of APIs in terms of grabbing the query immediately from an response sent back from a resource server-side. So how is a query sent back, in the body of a response, header, what? How do you grab it, with the stream object just like you do anything else? This questions relates to the environment I work in C# but really it relates to the web as a whole as well which is why I tagged this in multiple categories as a Request/Response is not MS specific however I am also at the same time trying to utilize the .NET WebClient object.