URDINESH: Interview Questions
Showing posts with label Interview Questions. Show all posts
Showing posts with label Interview Questions. Show all posts

Wednesday, May 14, 2014

Performance tuning In asp.net

Consider your application code look great and perfect. How will you do performance tuning for asp.net?

1.     Minimize HTTP Requests
2.     Use a Content Delivery Network
3.     Add an Expires or a Cache-Control Header
4.     Gzip Components
5.     Put Stylesheets at the Top
6.     Put Scripts at the Bottom
7.     Avoid CSS Expressions
8.     Make JavaScript and CSS External
9.     Reduce DNS Lookups
10. Minify JavaScript and CSS
11. Avoid Redirects
12. Remove Duplicate Scripts
13. Configure ETags
14. Make Ajax Cacheable
15. Flush the Buffer Early
16. Use GET for AJAX Requests
17. Post-load Components
18. Preload Components
19. Reduce the Number of DOM Elements
20. Split Components Across Domains
21. Minimize the Number of iframes
22. No 404s
23. Reduce Cookie Size
24. Use Cookie-free Domains for Components
25. Minimize DOM Access
26. Develop Smart Event Handlers
27. Choose over @import
28. Avoid Filters
29. Optimize Images
30. Optimize CSS Sprites
31. Don't Scale Images in HTML
32. Make favicon.ico Small and Cacheable
33. Keep Components under 25K

34.  Pack Components into a Multipart Document

ASP.NET Interview Questions and Answers Part 1

1)      What is view state?

=> When a form is submitted in classic ASP, all form values are cleared. Suppose you have submitted a form with a lot of information and the server comes back with an error. You will have to go back to the form and correct the information. You click the back button, and what happens.......ALL form values are CLEARED, and you will have to start all over again! means The site did not maintain your ViewState.

=> When a form is submitted in ASP .NET, the form reappears in the browser window together with all form values. How come? This is because ASP .NET maintains your ViewState. 

=> The ViewState indicates the status of the page when submitted to the server. The status is defined through a hidden field placed on each page with a <form runat="server"> control.

2)      Where these view state will be saved?

=> Viewstate is stored on page it self in encoded form. You can't access the viewstate in client side in a direct manner. You need to know the encoding/decoding algorithms to fetch the valuable data from this viewstate in clientside code.

=> You can use hidden variable to store data that will be used only on that page. Hidden variables are accessible from client side and server side code.

=> You can use Cache or session to store datatable (large data). They will have good performance as compare to ViewState.

=> The Cache is always using the machine's memory, the Session uses what has been configured:
=> In a web farm the Session can be local (which works only if affinity is set), or remote (state server or database, or custom), but the cache is always local.
=> So, storing a DataTable in the cache will consume memory, but it will not use serialization.

PS: storing a DataSet instead of a DataTable will change almost nothing.

3) Disadvantages of view state.

These are the main disadvantages of using View State:

1. It can be performance overhead if we are going to store larger amount of data , because it is associated with page only.

2. Its stored in a hidden filed in hashed format still it can be easily trapped.

3. It does not have any support on mobile devices.


4)  If there is a login page and a user gives his credentials, u have to authenticate it and display the user name in all other pages? How will u do it? What concept will u use for it?

for the current structure of your project, you can create a Session variable on the login page after verifying the user credentials and store logged in user details i.e.
in your login page, login button click handler do this: 

protectedvoidbtnLogin_Click(object sender, EventArgs e)
{
    string username= txtUsername.Text;
    string pwd = txtPassword.Text;
    //call your logic to verify user credentials.
    VerifyUserCredentialFromDb(username, pwd);
    if(UserValid)
    {
        Session["User"] = GetUserObject(username,pwd);
        //whatever your logic is, make sure, you create the Session object, before
        //below line,whereever you are doing it
        Response.Redirect("Home.aspx");
    }
}


and in the Page_load of all the other pages


protectedvoidPage_Load(object sender, EventArgs e)
{
     if(Session["User"]==null)
      Response.Redirect("login.aspx");
   }      
                                                                                                                                      

5)     What are cookies?

=> A cookie is a small bit of text that accompanies requests and pages as they go between the Web server and browser. The cookie contains information the Web application can read whenever the user visits the site.

=> Cookies provide a means in Web applications to store user-specific information. For example, when a user visits your site, you can use cookies to store user preferences or other information. When the user visits your Web site another time, the application can retrieve the information it stored earlier.

6)     How to access the values globally throughout the application in .NET?

Session Variables Session variables are stored in the server's memory for each user, and can be read and written to as often as required. These are limited to a per-user basis, so if you want to hold a single variable for all users, then this isn't the way to go.

Usage:
Session["MyVariable"] = 5;
intmyVariable = (int)Session["MyVariable"]; //Don't forget to check for null references


7)     Various modes of storing ASP.net session

ASP.NET session state supports several different storage options for session data. Each option is identified by a value in the SessionStateMode enumeration. The following list describes the available session state modes:

  • InProc mode, which stores session state in memory on the Web server. This is the default.
  • StateServer mode, which stores session state in a separate process called the ASP.NET state service. This ensures that session state is preserved if the Web application is restarted and also makes session state available to multiple Web servers in a Web farm.
  • SQLServer mode stores session state in a SQL Server database. This ensures that session state is preserved if the Web application is restarted and also makes session state available to multiple Web servers in a Web farm.
  • Custom mode, which enables you to specify a custom storage provider.
  • Off mode, which disables session state.
8)     Types of authentication in .NET? 

  •  There are three ways of doing authentication and authorization in ASP.NET:-
    • Windows authentication: - In this methodology ASP.NET web pages will use local windows users and groups to authenticate and authorize resources.

    • Forms Authentication: - This is a cookie based authentication where username and password are stored on client machines as cookie files or they are sent through URL for every request. Form-based authentication presents the user with an HTML-based Web page that prompts the user for credentials.

    • Passport authentication :-Passport authentication is based on the passport website provided
    by the Microsoft .So when user logins with credentials it will be reached to the passport website ( i.e. hotmail,devhood,windows live etc) where authentication will happen. If Authentication is successful it will return a token to your website.

    • Anonymous access: - If you do not want any kind of authentication then you will go for Anonymous access.
9)     Explain about Partial classes?

There are several situations when splitting a class definition is desirable:
  • When working on large projects, spreading a class over separate files enables multiple programmers to work on it at the same time.
  • When working with automatically generated source, code can be added to the class without having to recreate the source file. Visual Studio uses this approach when it creates Windows Forms, Web service wrapper code, and so on. You can create code that uses these classes without having to modify the file created by Visual Studio.
  • To split a class definition, use the partial keyword modifier, as shown here:
C#
public partial class Employee
{
public voidDoWork()
{
}
}

public partial class Employee
{
public voidGoToLunch()
{
}
}
The partial keyword indicates that other parts of the class, struct, or interface can be defined in the namespace. All the parts must use the partial keyword. All the parts must be available at compile time to form the final type. All the parts must have the same accessibility, such as public, private, and so on.

10)     Difference between Dataset.clone and dataset.copy?

Clone :- copies only the structure of the dataset. it includes all datatable schemas their constraints and exlcuding data in those datatables.

DataSet dswithData;//this is containing datatable schamas
DataSet dsNew;
dsNew=dswithData.Clone();


while Copy() : methods copies all the dataset including its datatables schemas, constraints along with the data.

<prelang="cs">
DataSetdswithData;//this is containing datatableschamas
DataSetdsNew;
dsNew=dswithData.Copy();
</pre>

Friday, May 9, 2014

ORACLE SQL Interview Practical Questions with Queries With Answers Part 4

51) What is SET?
SET command changes the system variables affecting the report environment.

52) What is SPOOL?
SPOOL command creates a print file of the report.

53) What is a JOIN?
JOIN is the form of SELECT command that combines info from two or more tables.
Types of Joins are Simple (Equijoin & Non-Equijoin), Outer & Self join.
Equijoin returns rows from two or more tables joined together based upon a equality condition in the WHERE clause.
Non-Equijoin returns rows from two or more tables based upon a relationship other than the equality condition in the WHERE clause.
Outer Join combines two or more tables returning those rows from one table that have no direct match in the other table.
Self Join joins a table to itself as though it were two separate tables.

54) What is Union?
Union is the product of two or more tables.

55) What is Intersect?
Intersect is the product of two tables listing only the matching rows.

56) What is Minus?
Minus is the product of two tables listing only the non-matching rows.

57)What is Correlated Subquery?
Correlated Subquery is a subquery that is evaluated once for each row processed by the parent statement. Parent statement can be Select, Update or Delete. Use CRSQ to answer multipart questions whose answer depends on the value in each row processed by parent statement.

58) What is Multiple columns?
Multiple columns can be returned from a Nested Subquery.

59) What is Sequences?
Sequences are used for generating sequence numbers without any overhead of locking. Drawback is that after generating a sequence number if the transaction is rolled back, then that sequence number is lost. 
Sequence is a database object used to generate unique sequential integer values.

60) What is Synonyms?
Synonyms is the alias name for table, views, sequences & procedures and are created for reasons of Security and Convenience.Two levels are Public - created by DBA & accessible to all the users. Private - Accessible to creator only. Advantages are referencing without specifying the owner and Flexibility to customize a more meaningful naming convention.

61) What is Data types?
Max. columns in a table is 255. Max. Char size is 255, Long is 64K & Number is 38 digits.
Cannot Query on a long column.
Char, Varchar2 Max. size is 2000 & default is 1 byte.
Number(p,s) p is precision range 1 to 38, s is scale -84 to 127.
Long Character data of variable length upto 2GB.
Date Range from Jan 4712 BC to Dec 4712 AD.
Raw Stores Binary data (Graphics Image & Digitized Sound). Max. is 255 bytes.
Mslabel Binary format of an OS label. Used primarily with Trusted Oracle.

62) What is Transaction?
Transaction is defined as all changes made to the database between successive commits.

63) What is Commit?
Commit is an event that attempts to make data in the database identical to the data in the form. It involves writing or posting data to the database and committing data to the database. Forms check the validity of the data in fields and records during a commit. Validity check are uniqueness, consistency and db restrictions.

64) What is Posting?
Posting is an event that writes Inserts, Updates & Deletes in the forms to the database but not committing these transactions to the database.

65) What is Savepoint?
Savepoint is a point within a particular transaction to which you may rollback without rolling back the entire transaction.

66) What is Set Transaction?
Set Transaction is to establish properties for the current transaction.

67) What is Locking?
Locking are mechanisms intended to prevent destructive interaction between users accessing data. Locks are used to achieve.

68) What is SQL Deadlock?
Deadlock is a unique situation in a multi user system that causes two or more users to wait indefinitely for a locked resource. First user needs a resource locked by the second user and the second user needs a resource locked by the first user. To avoid dead locks, avoid using exclusive table lock and if using, use it in the same sequence and use Commit frequently to release locks
.
69) Give the structure of the procedure ?
PROCEDURE name (parameter list.....)
is
local variable declarations
BEGIN
Executable statements.
Exception.
exception handlers
end;

basically procedure has three
parts
1.variable declaretion(optional)
2.body(mandetory)
3.Exception(optional)
suppose ex
CREATE OR REPLACEPROCEDURE emp_pro( p_id IN employees.employee_id%TYPE)
IS
v_name employees.last_name%TYPE;
v_mail employees.email%TYPE;
BEGIN
SELECT last_name,email INTO v_name,v_mail FROM employees
WHERE employee_id:=p_id;
DBMS_OUTPUT.PUT_LINE('NAME:'||v_name ||'MAILID:'||v_mail);
END;

70) What is Mutating SQL Table?
Mutating Table is a table that is currently being modified by an Insert, Update or Delete statement. Constraining Table is a table that a triggering statement might need to read either directly for a SQL statement or indirectly for a declarative Referential Integrity constraints. Pseudo Columns behaves like a column in a table but are not actually stored in the table. E.g. Currval, Nextval, Rowid, Rownum, Level etc.

71) What is SQL*Loader?
SQL*Loader is a product for moving data in external files into tables in an Oracle database. To load data from external files into an Oracle database, two types of input must be provided to SQL*Loader : the data itself and the control file. The control file describes the data to be loaded. It describes the Names and format of the data files, Specifications for loading data and the Data to be loaded (optional). Invoking the loader sqlload username/password controlfilename <options>.

72) What are the return values of functions SQLCODE and SQLERRM ?
SQLCODE returns the latest code of the error that has occurred.
SQLERRM returns the relevant error message of the SQLCODE.

SQLCODE returns the latest code of the error that has occured.
SQLERRM returns relevant massege
of the error code

73) The most important DDL statements in SQL are?
CREATE TABLE - creates a new database table

ALTER TABLE - alters (changes) a database table

DROP TABLE - deletes a database table

CREATE INDEX - creates an index (search key)

DROP INDEX - deletes an index

74) Operators used in SELECT statements are?
= Equal
<> or != Not equal
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal
BETWEEN Between an inclusive range
LIKE Search for a pattern

75) SELECT statements in SQL?
SELECT column_name(s) FROM table_name
SELECT DISTINCT column_name(s) FROM table_name
SELECT column FROM table WHERE column operator value
SELECT column FROM table WHERE column LIKE pattern
SELECT column,SUM(column) FROM table GROUP BY column
SELECT column,SUM(column) FROM table GROUP BY column HAVING SUM(column) condition value
Note that single quotes around text values and numeric values should not be enclosed in quotes. Double quotes may be acceptable in some databases.

76) What are the PL/SQL Statements used in cursor processing ?
DECLARE CURSOR cursor name, OPEN cursor name, FETCH cursor name INTO or Record types, CLOSE cursor name.

77) The SELECT INTO Statement is most often used to create backup copies of tables or for archiving records?
SELECT column_name(s) INTO newtable [IN externaldatabase] FROM source
SELECT column_name(s) INTO newtable [IN externaldatabase] FROM source WHERE column_name operator value.

78) The INSERT INTO Statements in SQL?
INSERT INTO table_name VALUES (value1, value2,....)
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)

79) The Update Statement in SQL.
UPDATE table_name SET column_name = new_value WHERE column_name = some_value

80) What is the Delete Statements in SQL?
Delete statement in SQL is used to delete partial/all data.
Especially delete statement is useful in case of partial delete depending upon our criterias otherwise use TRUNCATE to delete whole data from table.

When delete command fires then:
1) Triggers will fire (If created on that table)
2) This will not auto commit changes made So there is one chance to rollback.
3) If u delete whole data then HWM (Highest Water Mark) will not change which gets changed in case of Truncate.

81) How to sort the rows in SQL?
SELECT column1, column2, ... FROM table_name ORDER BY columnX, columnY, ..
SELECT column1, column2, ... FROM table_name ORDER BY columnX DESC
SELECT column1, column2, ... FROM table_name ORDER BY columnX DESC, columnY ASC
82) The IN operator may be used if you know the exact value you want to return for at least one of the columns.

SELECT column_name FROM table_name WHERE column_name IN (value1,value2,..)

                 *******Thank you for reading and All the best**************

Your comments will help me a lot...please give your comments which will encourage me to post more.....

Followers