Thursday, 29 June 2017

Wednesday, 28 June 2017

What is Spool Operator in SQL Server: SQL Server Performance Tuning

Spool operator scans the input and places a copy of each row in a hidden spool table that is stored in the tempdb database and existing only for the lifetime of the query. If the operator is rewound (for example, by a Nested Loops operator) but no rebinding is needed, the spooled data is used instead of re-scanning the input.
Table Spool is a physical operator.

Friday, 16 June 2017

What is Database testing?

Data base Testing is segmented into below four different categories.

  1. Data validity testing
  2. Data integrity testing
  3. Performance related to data base
  4. Testing of Procedure,triggers and functions

What are different types of errors? Explain each.


  • Syntax errors
  • Execution errors
  • Logic Errors


  • Syntax errors: The syntax errors are those that appear as you type the code. Visual Basic checks your code when you type it in the Code Editor window and warns you if you make a mistake, such as mistyping a word or using a language element incorrectly. Syntactic errors are the most frequent errors. They can be easily corrected in the coding environment as soon as they occur.
  • Execution errors: The errors at run-time are those that appear only after compiling and running the code. Errors of this type can be given, for example, in seemingly correct code fragments, for they do not present syntactic errors, but they do not execute correctly. For example, you could correctly type a line of code that opens a file. But, if the file is corrupted, the application will not be able to execute the Open function and will stop its execution. Most of the errors of this type can be corrected by modifying the code that presents errors, then compile it and re-execute it.
  • Logic errors: The logical errors are those that appear when the application is running. They are often unwanted or unexpected in response to user actions. For example, a badly written key or other external influence could cause the application to stop working even if the parameters are correct, or that it simply does not work. Usually, logical errors are the most difficult to correct, since it is not always clear where they originate.


Explain what is Alpha and Beta testing?

When custom software is built for a customer, a series of acceptance tests is performed to allow the customer to validate all requirements. Most software product developers carry out a process called alpha and beta testing to discover bugs that appear to only the end user can discover.

  • Beta test: They are carried out by the end users of the software in the customer workplaces. Unlike the alpha test, the developer is not normally present. Thus, the beta test is a live application of the software in an environment that can not be controlled by the developer. The client logs all problems encountered during the beta test and reports to the developer at regular intervals.
  • Alpha test: They are carried out, by a client, at the development site. The software is used in a natural way with the developer as a user observer and logging errors and usage problems. Alpha tests are performed in a controlled environment.


What do you understand by Integration testing?

Integration testing (sometimes called I & t integration and testing) is the software testing phase in which individual software modules are combined and tested as a group. They are the tests after the unit tests and precede the system test.

What is the exact difference between debugging and testing?

When a test is performed and a defect has been identified, it is the duty of the developers to first locate the defect in the code and then fix it. This process is known as debugging. In other words, debugging is the process of finding, analyzing, and eliminating the causes of software failures.
On the other hand, the test consists of both static and dynamic life-cycle testing activities. It helps determine that the software fulfills the specified requirements and is suitable for the purpose assigned to it.

What do you understand by Unit testing?

In programming, a unit test is a way to test the correct functioning of a code module. This is to ensure that each of the modules functions properly separately. Then, with the Integration Tests, it will be possible to ensure the correct operation of the system or subsystem in question. The idea is to write test cases for each nontrivial function or method in the module so that each case is independent of the rest.

For a unit test to be good , the following requirements must be met:

  • Automated : Manual intervention should not be required. This is especially useful for continuous integration.
  • Complete : Must cover the largest amount of code.
  • Repeatable or Reusable : Do not create tests that can only be executed once. It is also useful for continuous integration .
  • Independent : The execution of one test should not affect the execution of another.
  • Professionals : The tests should be considered the same as the code, with the same professionalism, documentation, etc.


Explain Software Testing?

Software testing is the process of verifying and revealing the quality of a software product. They are used to identify possible implementation failures, quality, or usability of a computer program or video game. Basically it is a phase in software development consisting of testing built applications.

What is the difference between validation and verification? Testing

Verify: It consists of verifying the implementation of the requirements. This involves providing objective evidence that an element meets the specified requirements. You would have to ask yourself the following: " Are we building the product correctly? ".

Validate: It involves checking that the implemented requirements are functional for what was initially built the product. That is, verify that the specified requirements are suitable for an intended use.

What do you understand by dirty read in terms of database?

Dirty reads occur when a transaction is allowed to read a row that was modified by another transaction that has not yet committed. Non-commit readings work the same as non-repeatable readings; However, the second transaction does not need to commit for the first query to return different data. The only thing that can be prevented in the isolation level "Readings without commit" is that the updates appear out of order.

What do you ensure by database code scalability test?

Evaluate how applications work when real activities are implemented. Perform load tests on SQL scripts, PL / SQL, T-SQL code, and stored procedures on different concurrent user configurations. Troubleshoot any code performance issues you encounter before you deploy production when you integrate with SQL Optimizer.

What do you understand by scalability testing?

Scalability is a performance benchmark that investigates a system's ability to grow by increasing the workload per user, or the number of concurrent users, or the size of a database.

Scalability tests Attributes:
  • Response time
  • Performance
  • Beats per second, Request per second, transactions per second
  • Measuring performance with the number of users
  • Measuring performance under a huge load
  • CPU usage, memory usage, while ongoing tests
  • Network usage - data sent and received
  • Web server - Request and response per second
The steps for developing a scalability test are as follows:
  1. Define a realistic scenario 
  2. Record the Stage 
  3. Run the stage to simulate concurrent users, simulating more and more users 
  4. When performance degrades to such an extent that it does not allow acceptable use of the system, the maximum number of users has been found. 

How are some best practices you follow for testing a database, that should every one follow?


  • Create your own queries: In order to test the operation in a database in a proper and accurate manner, first a tester must have very good knowledge of SQL and especially DML (Data Manipulation Language). Some CRUD operation will be performed with the user interface of the application, and the result will be verified using an SQL query . This is the best and most robust way to do tests in a database, especially for applications with low and medium level of complexity. However, the two prerequisites described are necessary. On the other hand, if the application is quite complex, then it may be difficult or impossible for the tester to write all the necessary SQL statements. However, for some complex queries, the tester can get help from the developer as well.
  • Test each table in the database: If the tester is not good in SQL, then he or she can verify the result of the CRUD operation, by viewing the (related) tables in the database. However, in this way it can be a bit tedious and cumbersome, especially when the database and tables have lots of data.
  • Obtain developer queries: This is the easiest way to test the database. Perform any CRUD operation through the graphical user interface and verify its impact by executing the SQL query that is obtained from the developer.
  • One instance for each tester: Provide one instance of DB for each tester. This avoids interference between them.
  • Initialize common data: Initialize common data only once for all tests. If there is data that is read only, we do not have to touch them if we make sure the tests do not modify them.

Testing in a database therefore, this method seems easy and good choice for testing the database. However, its drawback is chaos. What if the query proposed by the developer is semantically wrong or does not meet the requirement of the user correctly? In this situation, the client must report the problem and demand its correction as the best. Meanwhile, the worst case scenario is that the client may refuse to accept the request.

What should be tested in a database? Explain


  • Data mapping in a database: It should be ensured that regardless of the visual (front-end) part of the application, all CRUD operations must work correctly.
  • ACID properties in a database: The ACID properties of a database refer to "atomicity", "consistency", "isolation" and "durability". Proper testing of these four properties in a database should be performed during the testing activity.
  • Ensure the integrity of the data: Note that the different modules of an application (ie screens or forms) use the same data from different "views" and perform all CRUD operations on the data they obtain. In that case, make sure that the last state of the data is reflected everywhere. The system must display the most recent and updated values ​​or the status of the shared data on all forms and views. This is called data integrity.
  • Ensure the accuracy of the implemented trade rules: Today, databases are not meant to store records only. In fact, databases have become very powerful tools that provide broad support to developers in order to implement business logic at the database level. Some simple examples of powerful database features are 'referential integrity', relational constraints, triggers, and stored procedures. Therefore, using these and many other features offered by databases, developers implement business logic at the database level. The test must ensure that the running business logic is correct and works accurately.

What is the CRUD model in a database?

C : Create - When the user "saves" any new transaction or information to the database.
A : Retrieve - When the action of 'Search' or 'View' the information stored in the database is carried out by the user.
U : Update - when, the operation is performed to "update" the information in the database. Usually when 'edit' or 'modify' an existing user record.
D : Delete - when the user 'deletes' or deletes a system log.

This does not matter at all that what database you are using, much less the programming language you use to connect a database or if you have performed a correct database normalization ; The end user does not have to worry about the sub-queries, whether a trigger exists or a stored procedure.

What do you understand by ACID properties in Database?

Atomicity, Consistency, Isolation and Durability(ACID) are a set of properties necessary for a set of instructions to be considered as a transaction in a database management system.
A transaction is  a set of orders that are executed forming a unit of work, that is, in indivisible or atomic form.  An  example of a complex transaction is the transfer of funds from one account to another, which involves multiple individual transactions.
If a system passes the ACID test, it means that it is reliable.
  • Atomicity: Atomicity requires that every transaction be "all or nothing": if a part of the transaction fails, all transactions of the transaction fail, and therefore the database does not undergo changes. An atomic system has to guarantee the atomicity in any operation and situation, including power failures, errors and system failures.
  • Consistency: The Consistency property ensures that any transaction will take the database from a valid state to another valid state. Any data written to the database must be valid according to all defined rules, including (but not limited to) constraints, cascades, triggers, and any combination of these.
  • Isolation: Isolation ensures that the concurrent execution of transactions results in a system state that would be obtained if these transactions were executed one after another. Each transaction must be executed in full isolation; For example, if T1 and T2 are executed concurrently, then each one must be kept independent of the other.
  • Durability: Durability means that once a commit has been committed, it will be persistent, even in the event of loss of power, errors, and system crashes. For example, in relational databases, once a group of SQL statements is executed, the results must be stored immediately (even if the database falls immediately afterwards).


What do you understand by RDBMS?

Relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as invented by E. F. Codd, of IBM's San Jose Research Laboratory. Relational database is a collection of tables of data all of which are formally described and organized according to the relational model.

What are your Database testing approaches?


  • Gather database requirements 
  • Create test scenarios against each requirements 
  • Test schema data and test scenarios 
  • Positive and negative testing 
  • Valid and invalid data
  • Performance testing: run query check response time 
  • Security testing 

Tuesday, 13 June 2017

What is Report Parameter and Query Parameter in SSRS?

The Query Parameter will filter your data in the DataSource level. We can use these parameters in dataset of SSRS report to filter the corresponding data.
The Report Parameter will let the user to filter the report as per requirement based on the options they choose. When you create a report parameter and run the report, you let the user to choose values for the report parameter.
 

Monday, 12 June 2017

What are Different types of SSRS Reports?

What are Different types of SSRS Reports?


There are basically following types of different SSRS Reports--


•Parameterized reports
•Sub-reports
•Snapshot reports
•Cached reports
•Drilldown reports
•Drill through reports
•Linked reports
•Ad-hoc reports

 

Thursday, 8 June 2017

What is In-Chip technology over In-Memory?

In April 2013, Sisense introduced an alternative to in-memory technology called In-Chip analytics, designed to maximize the disk, memory and CPU with resulting low latency.
Processing data with Sisense’s In-Chip technology is 10 times faster than processing it in-memory. Sisense was designed from scratch with a scalable, memory-optimized columnar database that can comfortably handle terabytes of data and dozens of concurrent queries. These features give it extraordinary performance and also makes it easy for non-techies to join data from multiple sources, build interactive dashboards and business intelligence reports, and share it all in one click.

What are DataSource and DataSets in SSRS? Benefits Of Shared DataSource And Shared Datasets?

What are DataSource and DataSets in SSRS? Benefits Of Shared DataSource and  Shared Datasets?

If you need to show information from the database to your one of reports you need to create both dataset and datasource.

A DataSource is a pointer to location of all  your information from where you are retrieving or extracting data for your reports.

A Dataset is specific collection of your columns and records displayed in reports.

A Shared DataSource is Shared through out reports, you need  not to create a datasource again and again while developing new SSRS Reports. Benefits in if you have different environments Like UAT ,Prod etc. with different DataBase Name, then you only need to change database name  at one place that will reflect in all Reports.

A Shared DataSet is reused and you need not to create a dataset if same columns and structure is required in another report.Benefits in, if you are populating the dropdown parameter values with the DataSets and same parameter is to used in some another reports, than its handy to create a shared DatSets and use them which saves time and work to recreate a Query.
 

How you relate Sisense with Hadoop / Hive?

Sisense works with Hive–the data warehouse system designed for Big Data analytics. works well, but it is a developer tool, not a business user tool: queries are written in an SQL-like programming language. Plus, while Hive scales well, query time can often take hours. Sisense allows business users to visually analyze data that resides in Hadoop/Hive, and with much faster response time.

Whats the advantage of Sisense over in-memory software?

As you know with previous generation in-memory BI software the amount of data that you can analyze is limited by the number of RAM Gigabytes of your computer. But what if your data outgrows your computer’s memory? You either get “out-of-memory” errors, or you end up needing to do “data acrobatics” such as splitting you data into multiple silos or building a data warehouse. Sisense’s revolutionary ElastiCube In-Memory technology gives you all the benefits of in-memory without its limitations. It quickly expands the data to the hard-drive, so it is only limited by the amount on the drive.

Wednesday, 7 June 2017

Whats the advantage of Sisense over visualization software?

Most data visualization and business intelligence tools allow you to visually explore data sets. They work well if you have a few data sources (1-2 tables) and small data sets (a few millions of records). If your data grows quickly, or you expect to add more data sets, you will need to develop a “data warehouse” that will aggregate and reduce your data to sizes that the visualization software can cope with. This is a costly exercise, and you’ll be losing granularity. With Sisense fully functioning solution, you do not need to worry about any of this: Sisense includes our own visualization software and server, both designed to support hundreds of tables and billions of records.

Can you install Sisense on Linux?

Not at this time, however Sisense only needs to be installed on a centralized Windows machine to pull data from multiple data sources, and then dashboard creators and users can access the data from any HTML5-supported browser on any operating system including mobile.

Explain, What is a build?

A build is a process that pulls the data from the sources and prepares it to be used in your dashboards. Before you use the data for the first time and every time that the data changes or you update the Elasticube structure, you need to run a build.

What is the difference between the Elasticube Manager, the Elasticube Server, and the Elasticube Server Console?

The Elasticube Manager is component of the Prism suite that helps you design the Elasticube (connect to tables, build relationships, etc.), while the Elasticube Server is a component that you will normally not see, and that keeps the Elasticube up and running. If for some reason you need to restart the Elasticube Server, or delete an Elasticube, you can do so with the Elasticube Server Console.
To start the Elasticube Manager, you can do so by clicking on start> all programs> sisense> Prism ElastiCube Manager
To start the Elasticube Server Console, you can do so by clicking on start> all programs> sisense> Prism Server Console

What is the difference between .ecdata and .ecube data files?

The Elasticube Manager stores the design of the data schema in a .ecube file. It is not the data itself, but actually a “blueprint” of your data structure and source definitions. The .ecube is the data itself already in the Elasticube. You can notice that .ecube files are very small (a few KBs), whereas .ecube files are sensitively larger (may reach GBs  depending on your data).

How do I connect to data with Elasticube Manager?

Connecting to data with Elasticube Manager is very easy, and it supports many data source types: Excel files, databases, and even web services hosted in the cloud. Take a look at the left menu in the link below to choose the data source that you want to connect to, and be aware that you don’t need to settle with one data source type, since with SiSense Prism you can mash up data from different sources seamlessly.

Importent Procedure for Performance Tuning






SELECT OBJECT_NAME([PS].[object_id], [PS].[database_id]) AS [ProcedureName],
[PS].[execution_count] AS [ProcedureExecutes],
[QS].[plan_generation_num] AS [VersionOfPlan],
[QS].[execution_count] AS [ExecutionofCurrentPlan],
SUBSTRING([ST].[Text],([QS].[statement_start_offset]/2)+1,
((CASE [statement_start_offset] WHEN -1 THEN DATALENGTH([ST].[text])
  ELSE [QS].[statement_end_offset] END
  - [QS].[statement_start_offset])/2)+1) AS [StatementText],
  [QS].[statement_start_offset] AS [Offset],
  [QS].[statement_end_offset] AS [Offset_end],
  [QP].[query_plan] AS [Query Plan XML],
  [QS].[query_plan_hash] AS [Query Plan Fingerprint]
FROM [sys].[dm_exec_procedure_stats] AS [PS]
JOIN [sys].[dm_exec_query_stats] AS [QS]
ON [PS].[Plan_handle] = [QS].[Plan_handle]
CROSS APPLY [sys].[dm_exec_query_plan] ([QS].[Plan_handle]) AS [QP]
CROSS APPLY [sys].[dm_exec_sql_text] ([QS].[sql_handle]) AS [ST]
WHERE [PS].[database_id] = DB_ID()
--AND OBJECT_NAME([PS].[object_id], [PS].[database_id])
--NOT IN (N'ProcedurePlans',N'RecompileEvents')
AND OBJECT_NAME([PS].[object_id], [PS].[database_id]) = 'USP_SearchAgreements_UPDATED_v4'
ORDER BY [ProcedureName],[QS].[statement_start_offset]



Explain Sisense Architecture?

Sisense Architecture
The Sisense system is comprised of the following components.
 
  • Sisense Web Application: The Sisense Web application is an interactive web application that provides the user interface in which users can design, share, view and explore dashboards. The Sisense Web application runs in popular web browsers and enables access to the Sisense server.  Dashboards can also be viewed on mobile devices.
  • Sisense Web Server: The Sisense Web Server is installed locally on your computer and hosts the Sisense Web application.
  • ElastiCube Server: The ElastiCube Server is installed locally on your computer and enables access to ElastiCubes. Both the Sisense Web Application and the ElastiCube Manager query the ElastiCube Server and receive results.
  • ElastiCube Manager: The ElastiCube Manager is a visual environment in which you create ElastiCubes. The ElastiCube Manager enables you to structure and import multiple data sources, create relationships between data, and perform ETL (Extract, Transform, and Load) processes to prepare data for analysis and visualization.
  • Sisense Server Console: The Sisense Server Console provides administration functions for managing ElastiCubes on the ElastiCube Server.
Refrence: https://documentation.sisense.com
 

Tuesday, 6 June 2017

Why Sisense? What makes it unique?

In today IT world companies had two options for data analytics: complex and pricey BI tools that can handle big and complex data, or lower cost tools that are simpler but do not scale well. Sisense has developed a revolutionary product that includes everything you need to get insights from multiple, large data sets at a fraction of the cost of traditional business intelligence tools. All this is made possible by our award-winning technology that eliminates the technical hurdles, runs on standard hardware, and let’s business users go from scattered data to beautiful dashboards with minimum IT.

What is Sisense?


Sisense is a BI tool that was developed for all types of user, even those with little or no prior experience with BI software. Sisense's tools manage and support business data with powerful visuals and tools.

Top 50 SISENSE BI Interview Questions Answers

What IS SSRS and What reports can we make using SSRS?

SSRS interview Question; What Is SSRS and What reports can we make using SSRS?

SSRS is a Server based Report generating System. We can Build Tabular Reports, Matrix Reports and develop graphical reports using Chart, Maps etc.
Reports can be developed in :
 
  •  Report Builder
  •  Visual Studio
  •  In SQL Server Data Tools (SSDT)
  •  By hand writing XML File
To create interactive dashboards, you can use below:
  •  Sparklines   (Word Size Small Charts, Usually used in Tables or matrix)
  •  Line charts (Used for showing Trend History throughout Year or Months)
  •  Bar charts (used for comparing data monthly or yearly)
  •  Data Bars
  •  Indicators (inline gauges)
  •  Maps (Show Geographical position of data across countries) 
  •  Pie Charts (For Showing Proportion)
  •  Gauges (For Visual Analogies Ex. Showing Trend Progress Further Two Types Linear and       Radial)
 

Sunday, 4 June 2017

Concat NULL value in SQL Server? TCS Interview Questions

SQL Server interview question asked in TCS interview.


Q: What would be the output of following script?






Ans:




Q: So how you will print FullName as "Vikas Ahlawat"
Ans: I will use ISNULL() function like below




Q: If I not allow to use ISNULL() what would be other solution?
Ans: I will use CONCAT() function (introduced in SQL Server 2012)