SQL Server Unit Tests

Hi SQL Server Experts,
About SQL Server Unit Tests (vide
http://msdn.microsoft.com/en-us/library/jj851203(v=vs.103).aspx), please help with inputs on pros and cons of SQL Server Unit Tests. Any ideal recommendation?
Thanks

Blog on the topic: "Database unit testing is used for feature testing of your individual modules (stored procedures, triggers or user defined functions) that is to say your module performs as expected.  Apart from that, it is also used to ensure that
subsequent changes to the module does not break any functionality.
At first glace, it looks like this would add overhead to create vs. doing adhoc testing, but Visual Studio lets you automatically generate T-SQL code stubs to test the database object which you can customize as per your need.
Visual Studio provides Database Unit Test Designer which you can write/define T-SQL scripts (also insert SQL assertion in this code) that calls your module and then evaluates the execution result against the different test conditions which indicates your
modules execution success or failure."
LINK:
SQL Server Unit Testing with Visual Studio 2010
>Please pardon my ignorance as I am coming back to SQL Server after a brief gap.
You may have to brush up with T-SQL prior to using a sophisticated tool like this:
http://www.sqlusa.com/bestpractices/
Kalman Toth Database & OLAP Architect
SQL Server 2014 Design & Programming
New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012

Similar Messages

  • Using SQLCMD variables in SQL Server Unit Test Project

    Is it possible to use SQLCMD variables in my SQL Server Unit Test Project? In my test initialize script I'd like to set a database name variable, something like this:
    :SETVAR MyDatabase "mydatabase"
    SELECT * FROM [$(MyDatabase)].[mytable]
    but I get syntax errors when I run the test. Any suggestions how I can get this to work.
    Result Message: Initialization method
    myTest.TestInitialize threw exception. System.Data.SqlClient.SqlException: System.Data.SqlClient.SqlException:
    Incorrect syntax near ':'..

    Hi Kevin,
    What is the error?
    This should work only thing i could see is no scheme specified.
    SQL Server uses dbo as default schema.
    In your case:
    :SETVAR MyDatabase "mydatabase"
    SELECT * FROM [$(MyDatabase)].dbo.[mytable]
    Also check your instance collation if its Case sensitive then specify database and table name as exact case.
    Example:
    :SETVAR MyDatabase "[mydatabase]"
    :setvar schemavar "[dbo]"
    :setvar tablevar "[mytable]"
    SELECT * FROM $(MyDatabase).$(schemavar).$(tablevar)

  • SSDT: Creation of localDB instances from project file - Sql Server Unit testing purposes

    I have a SqlServer Database Project in my solution (VS2013 Professional) which has a corresponding test project with some stored procedure unit tests. Currently I am using a LocalDB and as far as I understand a local database instance is created in C:\Users\[User]\AppData\Local\Microsoft\Microsoft
    SQL Server Local DB\Instances\Projects and the specific .mdf file referenced in the SQL Server Object Explorer is in C:\Users\[User]\AppData\Local\Microsoft\VisualStudio\SSDT\[ProjectName]. The unit tests run fine on my local machine which I have developed
    the project on.
    My issue is we have a box which is configured to check out the project file from our version control, build the project using ms build commands and then run the unit tests using VSTest.Console. Usually with C# Test projects we reference the test project
    dll and the unit tests run fine. I have referenced the dll for the test project with the stored procedure unit tests in. 
    With the Stored Procedure unit tests however we get this exception: 
    Initialization method [project].[spTest].TestInitialize threw exception. System.Data.SqlClient.SqlException: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.
    After some digging I have realised that the localdb instance seems to be created when the project itself is created in VS not when it is built. Specifically when the localdb is first used and if you look into the appData folder of the test machine there
    is no corresponding mdf file for the project.  
    The question is is there a way to set up a localDB instance on the new machine if all you have the project file? The only purpose of the project on the test machine is to run the unit tests, no other development purposes. VS2013 Professional is installed
    on the test machine but a solution only using config file changes or MSBuild/VSTest commands would be preferable.
    I realise you could change the connection string to an actual test database and run the unit tests of that but we quite like the localdb approach for the testing. I also realise that you could potentially transfer the mdf file (haven't tested this solution)
    as well, though I would prefer if there is a solution to my initial question. 
    http://technet.microsoft.com/en-us/library/hh234692.aspx
    http://msdn.microsoft.com/en-us/library/hh309441(v=vs.110).aspx
    I have been reading up on LocalDB and I assume a automatic LocalDB is created when you create a sql server database project (ie on localdb first use). I have tried adding the database creation to the test project config file but do not really know where
    to go from there. The second link does not really specify when the named localdb will be created if you add the config items and I am not even sure if that is an actual solution.  Here's my test project config file for reference
    <configSections>
    <section name="system.data.localdb" type="System.Data.LocalDBConfigurationSection,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=[PublicKeyToken]"/>
    <section name="SqlUnitTesting_VS2013" type="Microsoft.Data.Tools.Schema.Sql.UnitTesting.Configuration.SqlUnitTestingSection, Microsoft.Data.Tools.Schema.Sql.UnitTesting, Version=12.0.0.0, Culture=neutral, PublicKeyToken=[PublicKeyToken]" />
    </configSections>
    <system.data.localdb>
    <localdbinstances>
    <add name="SimpleUnitTestingDB" version="11.0" />
    </localdbinstances>
    </system.data.localdb>
    <SqlUnitTesting_VS2013>
    <DatabaseDeployment DatabaseProjectFileName="..\..\..\SimpleUnitTestDB\SimpleUnitTestDB.sqlproj"
    Configuration="Release" />
    <DataGeneration ClearDatabase="true" />
    <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\Projects;Initial Catalog=SimpleUnitTestDB;Integrated Security=True;Pooling=False;Connect Timeout=30"
    CommandTimeout="30" />
    <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\Projects;Initial Catalog=SimpleUnitTestDB;Integrated Security=True;Pooling=False;Connect Timeout=30"
    CommandTimeout="30" />
    </SqlUnitTesting_VS2013>
    Thanks in advance for any response. Sorry if there is any misunderstanding, while I have been using VS to develop from the start, this is the first time I have used a Sql Server Database Project. 
    Regards,
    Christopher. 

    Yes, you can create a LocalDB instance manually. You use the SqlLocalDb utility, see here:
    http://technet.microsoft.com/en-us/library/hh212961.aspx
    Erland Sommarskog, SQL Server MVP, [email protected]

  • SQL Developer Unit Testing - Validation with PL/SQL

    Hi,
    I am trying to create Unit tests using SQL Developer UT framework.
    But when i am creating validation using User PL/SQL code option.
    Then how can i check value returned by l_count in code snippet below:
    -- Please raise an exception if the validation fails.
    -- For example:
    DECLARE
    l_count NUMBER;
    wrong_count EXCEPTION;
    BEGIN
    SELECT count(*) into l_count
    FROM test_recon
    WHERE
    match_num = 99836936
    AND Stg_status_flag <> 'E';
    IF l_count = 0
    THEN
    RAISE wrong_count;
    END IF;
    END;
    Also, can someone please refer me to few more demo examples (apart from oracle docs) to implement good test cases with SQL developer.
    I appreciate your help.
    Regards
    Dipali

    Probably not the answer you're looking for, but back when I was playing around with the Unit Test stuff, I didn't have sys privs, and the DBAs were a little busy at the time to set a up a repository for me. Rather than wait, I installed Oracle XE on my machine and created a small dev schema and deployed unit test to that. It's so much easier to perform quick proof of concepts when you have full control.

  • SQL Server PDW Test Emulator ?

    Hi All, 
    I work on IBM Netezza in my work place now want to try out SQL Server PDW to test its performance and new polybase functionality.
    Is there any SQL Server PDW emulator for developers to test or learn new techniques same as IBM Netezza ?
    https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=266888e9-4b4b-44cd-bd51-e32d05da9143
    Sri.Tummala

    Not that I know of... If you're serious about testing PDW's capabilities speak to Microsoft who would be more than happy to help setup an appliance. 

  • SQL Developer Unit Test

    I'm trying out the Unit Test tool in SQL Developer version 3.2.09 and I keep getting the following error on the Teardown Process:
    Teardown Table or Row Restore (1/1) failed: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    ORA-06512: at line 22
    I have no idea what line 22 refers to? I cannot seem to find more detailed information in order to correct the problem.
    Any insight or help would be great!
    Thanks,
    Paul

    I'm having the same issue with SQL Developer 3.2.20.09 on Oracle 11.2.0.3.0. However, I think it's somewhat data dependent as I've had success and I've also encountered the ORA-06502 error.
    I ran a generic test on a very simple table and was successful using the teardown restore of the table. The procedure isn't important in this scenario, but is given as reference to creating the test. The simple, successful case is given first.
    Note that in both cases/tests, the original table of data already existed, so I question the error message pointing to data being inserted is longer than the field allows or that data types are somehow different...+unless+ SQL Developer is translating or getting it wrong. ALSO NOTE, running the SQL inserts as given works if run through the worksheet. It's only in the Teardown that I see the ORA-06502 error message.
    Data
    CREATE TABLE EMPLOYEES (EMPLOYEE_ID NUMBER, COMMISSION_PCT NUMBER, SALARY NUMBER);
    Insert into EMPLOYEES (EMPLOYEE_ID,COMMISSION_PCT,SALARY) values (1001,0.2,8400);
    Insert into EMPLOYEES (EMPLOYEE_ID,COMMISSION_PCT,SALARY) values (1002,0.25,6000);
    Insert into EMPLOYEES (EMPLOYEE_ID,COMMISSION_PCT,SALARY) values (1003,0.3,5000);
    CREATE OR REPLACE PROCEDURE AWARD_BONUS AS
    BEGIN
    null;
    END award_bonus;
    Startup: Table or Row Copy
    description = "TMP$AWARD_BONUS_TEST" := SELECT ROWID AS SRC$ROWID, s.* FROM "EMPLOYEES" s
    source = "EMPLOYEES"
    temp = "TMP$AWARD_BONUS_TEST"
    Teardown: Table or Row Restore
    description = "TMP$AWARD_BONUS_TEST" -> "EMPLOYEES"
    source = "EMPLOYEES"
    key = PRIMARY KEY
    temp = "TMP$AWARD_BONUS_TEST"
    The above worked without error.
    The following did not work.* (Again, the procedure isn't relevant.)
    Data
    CREATE TABLE "xxdss_fact_detail_history"
    "fact_trx_id" NUMBER(15, 0),"number_of_records" NUMBER,
    "product_code" VARCHAR2(250 byte),"item_code" VARCHAR2(250 byte),
    "item_description" VARCHAR2(250 byte),"trade" VARCHAR2(250 byte),
    "item_system" VARCHAR2(250 byte),"unit" VARCHAR2(250 byte),
    "fuel_source" VARCHAR2(250 byte),"component" VARCHAR2(250 byte),
    "assembly" VARCHAR2(250 byte),"part" VARCHAR2(250 byte),
    "symptoms" VARCHAR2(250 byte),"diagnosis_item" VARCHAR2(250 byte),"coa"
    VARCHAR2(250 byte),"cchs_parts" VARCHAR2(250 byte),
    "region" VARCHAR2(250 byte),"state" VARCHAR2(250 byte),
    "county" VARCHAR2(250 byte),"zip" VARCHAR2(250 byte),"vendor_id" NUMBER,
    "vendor_site_id" NUMBER,"vendor_name" VARCHAR2(250 byte),
    "vendor_site" VARCHAR2(250 byte),"c_service_call_cost" NUMBER,
    "c_labor_cost" NUMBER,"c_part_cost" NUMBER,"c_tax" NUMBER,
    "c_cchs_oh_cost" NUMBER,"c_cchs_total_low_cost" NUMBER,
    "c_cchs_total_high_cost" NUMBER,"c_cchs_avg_total_cost" NUMBER,
    "c_nc_c_labor_cost" NUMBER,"c_nc_c_part_cost" NUMBER,"c_nc_tax_cost" NUMBER
    ,"c_nc_total_low_cost" NUMBER,"c_nc_total_high_cost" NUMBER,
    "c_nc_avg_total_cost" NUMBER,"c_flat_low_cost" NUMBER,
    "c_flat_high_cost" NUMBER,"c_flat_avg_cost" NUMBER,
    "p_cycle_time_day_low" NUMBER,"p_cycle_time_day_high" NUMBER,
    "p_cycle_avg_time_day" NUMBER,"p_reasgn_low" NUMBER,"p_reasgn_high" NUMBER,
    "p_reasgn_avg" NUMBER,"p_recall_low" NUMBER,"p_recall_high" NUMBER,
    "p_recall_avg" NUMBER,"s_sp_nps_score_low" NUMBER,
    "s_sp_nps_score_high" NUMBER,"s_sp_avg_nps_score" NUMBER,
    "s_cchs_nps_score_low" NUMBER,"s_cchs_nps_score_high" NUMBER,
    "s_cchs_avg_nps_score" NUMBER,"cps_cost" NUMBER,"cps_perfrmce" NUMBER,
    "cps_sat" NUMBER,"coa_score" NUMBER,"comments" VARCHAR2(4000 byte),
    "complete_flag" VARCHAR2(1 byte),"last_update_date" DATE,
    "last_updated_by" NUMBER(15, 0),"creation_date" DATE,
    "created_by" NUMBER(15, 0),"last_update_login" NUMBER(15, 0),
    "vendor_number" VARCHAR2(200 byte)
    SET DEFINE OFF;
    Insert into XXDSS.XXDSS_FACT_DETAIL_HISTORY (FACT_TRX_ID,NUMBER_OF_RECORDS,PRODUCT_CODE,ITEM_CODE,ITEM_DESCRIPTION,TRADE,ITEM_SYSTEM,UNIT,FUEL_SOURCE,COMPONENT,ASSEMBLY,PART,SYMPTOMS,DIAGNOSIS_ITEM,COA,CCHS_PARTS,REGION,STATE,COUNTY,ZIP,VENDOR_ID,VENDOR_SITE_ID,VENDOR_NAME,VENDOR_SITE,C_SERVICE_CALL_COST,C_LABOR_COST,C_PART_COST,C_TAX,C_CCHS_OH_COST,C_CCHS_TOTAL_LOW_COST,C_CCHS_TOTAL_HIGH_COST,C_CCHS_AVG_TOTAL_COST,C_NC_C_LABOR_COST,C_NC_C_PART_COST,C_NC_TAX_COST,C_NC_TOTAL_LOW_COST,C_NC_TOTAL_HIGH_COST,C_NC_AVG_TOTAL_COST,C_FLAT_LOW_COST,C_FLAT_HIGH_COST,C_FLAT_AVG_COST,P_CYCLE_TIME_DAY_LOW,P_CYCLE_TIME_DAY_HIGH,P_CYCLE_AVG_TIME_DAY,P_REASGN_LOW,P_REASGN_HIGH,P_REASGN_AVG,P_RECALL_LOW,P_RECALL_HIGH,P_RECALL_AVG,S_SP_NPS_SCORE_LOW,S_SP_NPS_SCORE_HIGH,S_SP_AVG_NPS_SCORE,S_CCHS_NPS_SCORE_LOW,S_CCHS_NPS_SCORE_HIGH,S_CCHS_AVG_NPS_SCORE,CPS_COST,CPS_PERFRMCE,CPS_SAT,COA_SCORE,COMMENTS,COMPLETE_FLAG,LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATION_DATE,CREATED_BY,LAST_UPDATE_LOGIN,VENDOR_NUMBER) values (324,2,'L&F-MPP03TR','STCOL-SPL','Straight Cool Split System','HVAC',null,'STCOL-SPL',null,null,null,null,null,null,'REAPIR','N',null,'VA','ASHBURN','20148',22024,118957,'Air Lingus Inc',null,50,55,44,12,180,40,78,76.5,60,50,20,100,180,130,50,110,80,2,8,3.9323148148178,40,60,43,9,10,8.2,100,201,150,20,40,35,50,30,20,100,null,null,to_date('01-JAN-13','DD-MON-RR'),1,to_date('01-JAN-13','DD-MON-RR'),1,null,'122023');
    Insert into XXDSS.XXDSS_FACT_DETAIL_HISTORY (FACT_TRX_ID,NUMBER_OF_RECORDS,PRODUCT_CODE,ITEM_CODE,ITEM_DESCRIPTION,TRADE,ITEM_SYSTEM,UNIT,FUEL_SOURCE,COMPONENT,ASSEMBLY,PART,SYMPTOMS,DIAGNOSIS_ITEM,COA,CCHS_PARTS,REGION,STATE,COUNTY,ZIP,VENDOR_ID,VENDOR_SITE_ID,VENDOR_NAME,VENDOR_SITE,C_SERVICE_CALL_COST,C_LABOR_COST,C_PART_COST,C_TAX,C_CCHS_OH_COST,C_CCHS_TOTAL_LOW_COST,C_CCHS_TOTAL_HIGH_COST,C_CCHS_AVG_TOTAL_COST,C_NC_C_LABOR_COST,C_NC_C_PART_COST,C_NC_TAX_COST,C_NC_TOTAL_LOW_COST,C_NC_TOTAL_HIGH_COST,C_NC_AVG_TOTAL_COST,C_FLAT_LOW_COST,C_FLAT_HIGH_COST,C_FLAT_AVG_COST,P_CYCLE_TIME_DAY_LOW,P_CYCLE_TIME_DAY_HIGH,P_CYCLE_AVG_TIME_DAY,P_REASGN_LOW,P_REASGN_HIGH,P_REASGN_AVG,P_RECALL_LOW,P_RECALL_HIGH,P_RECALL_AVG,S_SP_NPS_SCORE_LOW,S_SP_NPS_SCORE_HIGH,S_SP_AVG_NPS_SCORE,S_CCHS_NPS_SCORE_LOW,S_CCHS_NPS_SCORE_HIGH,S_CCHS_AVG_NPS_SCORE,CPS_COST,CPS_PERFRMCE,CPS_SAT,COA_SCORE,COMMENTS,COMPLETE_FLAG,LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATION_DATE,CREATED_BY,LAST_UPDATE_LOGIN,VENDOR_NUMBER) values (465,4,'L&F-MPP03TR','STCOL-SPL','Straight Cool Split System','HVAC',null,'STCOL-SPL',null,null,null,null,null,null,'REPLACE','N',null,'VA','ASHBURN','20148',1768,1090523,'Airmax Heating And Air Conditioning Llc',null,65,50,80,15,110,50,60,70,70,40,20,100,180,130,50,110,80,3,5,0.878969907411374,10,70,20,1,2,2,130,150,140,20,40,60,40,30,30,100,null,null,to_date('01-JAN-13','DD-MON-RR'),1,to_date('01-JAN-13','DD-MON-RR'),1,null,'101767');
    CREATE OR REPLACE PROCEDURE dss AS
    BEGIN
    null;
    END dss;
    Startup: Table or Row Copy
    description = "TMP$DSS_TEST" := SELECT ROWID AS SRC$ROWID, s.* FROM "XXDSS_FACT_DETAIL_HISTORY" s
    source = "XXDSS_FACT_DETAIL_HISTORY"
    temp = "TMP$DSS_TEST"
    Teardown: Table or Row Restore
    description = "TMP$DSS_TEST" -> "XXDSS_FACT_DETAIL_HISTORY"
    source = "XXDSS_FACT_DETAIL_HISTORY"
    key = PRIMARY KEY
    temp = "TMP$DSS_TEST"

  • Sql server admin test 70-462

    Hello, I was involved with SQL Server back in the SQL 7 days. I have received some good info about how to get back into it. I would like to study and take the sql 2012 admin test 70-462 (I have not seen a test for sql 2014). I was looking at the sample
    tests on the Trancender web site and was shocked at the prices (download plus bonus online $139 for 118 practice questions).  Is there anyway to get questions free?  I would like to look at a good sample test so that I would know what to study.
    Is there a good book or PDF that would cover the requisite material for the test?

    Hello,
    Try video resources available at Channel 9.
    http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/EXM16
    Hope this helps.
    Regards,
    Alberto Morillo
    SQLCoffee.com

  • Unit testing PL/SQL used in APEX application

    question from my customer :
    I am developing an application in Oracle Application Express and am working on unit tests for the PL/SQL stored procedures and packages that are stored in the underlying database and that are used by the APEX application. These unit tests should run within the SQL Developer Unit Test framework.
    The problem is that some of the PL/SQL code stored in the database uses functions like NV('APPLICATION_ITEM') to access items in the apex application. These do not return any values when I try to execute the PL/SQL within the unit test framework, ie through the backend. While it is good that the NV function does not error, NULL do not really work well in my scenario either (for example when the result of this functions is inserted into a NOT NULL column of a table). I can think of a few workarounds, such as creating my own NV function inside the test schema to return desirable values, but nothing seems a really satisfactory solution. I just wonder if there is any best practice recommendation from Oracle for this scenario - how can I run code that uses APEX-specific functions through the back end. I could not find anything in the APEX documentation for this but I'd be interesting to know if there is any recommendation how to best deal with this case.
    I am using SQL Developer version 4.0.0.13.80

    User[[:digit:]*
    Your PL/SQL Package APIs are poorly designed.
    You need to take Tom Kyte's quote to heart:
    "Application come and application go, but data remains forever"
    In short, you need to separate your database processing code (the stuff you need to unit test) from front-end/middle tier code.
    (repetitiveness is for effect.. not rudeness.)
    As such, The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in APEX.
    The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in .NET.
    The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in JSP.
    The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in Jive.
    The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in Ruby.
    The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in Perl::CGI.
    The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in P9.
    The PL/SQL code that you need to 'UNIT TEST' must work without needing to run in <place latest and greatest thing here>.
    Again, I don't mean to sound rude.  I'm just trying to reinforce the idea that you need to separate database code from middle-tier/front-end stuff.
    Basically, you will need to separate all of your packages into multiple parts.
    a _CORE package (that will be unit tested) that does all the hard work
    an _APEX package for APEX infrastructure (this works with NV()/V(), etc.)
    a _NET package for .NET infrastructure when you need it
    a _JSP package for the JSP infrastructure when you need it
    a _JIVE package for the JIVE infrastructure when you need it
    a _<place latest and greatest thing here> for the <place latest and greatest thing here> when you need it.
    MK

  • PL/SQL Unit Testing

    Does anyone know about PL/SQL unit testing software? I'm currently reviewing Quest's Code Tester for Oracle, which seems very good. Are there any others?

    Check here my post
    http://rodenthood.blogspot.com/2010/07/oracle-sql-developer-unit-testing.html
    or here oracle's guide
    http://www.oracle.com/technology/obe/11gr2_db_prod/appdev/sqldev/sqldev_unit_test/sqldev_unit_test_otn.htm

  • Increase Performance and ROI for SQL Server Environments

    May 2015
    Explore
    The Buzz from Microsoft Ignite 2015
    NetApp was in full force at the recent Microsoft Ignite show in Chicago, talking about solutions for hybrid cloud, and our proven solutions for Microsoft SQL Server and other Microsoft applications.
    Hot topics at the NetApp booth included:
    OnCommand® Shift. A revolutionary technology that lets you move virtual machines back and forth between VMware and Hyper-V environments in minutes.
    Azure Site Recovery to NetApp Private Storage. Replicate on-premises SAN-based applications to NPS for disaster recovery in the Azure cloud.
    These tools give you greater flexibility for managing and protecting important business applications.
    Chris Lemmons
    Director, EIS Technical Marketing, NetApp
    If your organization runs databases such as Microsoft SQL Server and Oracle DB, you probably know that these vendors primarily license their products on a "per-core" basis. Microsoft recently switched to "per-core" rather than "per-socket" licensing for SQL Server 2012 and 2014. This change can have a big impact on the total cost of operating a database, especially as core counts on new servers continue to climb. It turns out that the right storage infrastructure can drive down database costs, increase productivity, and put your infrastructure back in balance.
    In many customer environments, NetApp has noticed that server CPU utilization is low—often on the order of just 20%. This is usually the result of I/O bottlenecks. Server cores have to sit and wait for I/O from hard disk drives (HDDs). We've been closely studying the impact of all-flash storage on SQL Server environments that use HDD-based storage systems. NetApp® All Flash FAS platform delivers world-class performance for SQL Server plus the storage efficiency, application integration, nondisruptive operations, and data protection of clustered Data ONTAP®, making it ideal for SQL Server environments.
    Tests show that All Flash FAS can drive up IOPS and database server CPU utilization by as much as 4x. And with a 95% reduction in latency, you can achieve this level of performance with half as many servers. This reduces the number of servers you need and the number of cores you have to license, driving down costs by 50% or more and paying back your investment in flash in as little as six months.
    Figure 1) NetApp All Flash FAS increases CPU utilization on your SQL Server database servers, lowering costs.
    Source: NetApp, 2015
    Whether you're running one of the newer versions of SQL Server or facing an upgrade of an earlier version, you can't afford not to take a second look at your storage environment.
    End of Support for Microsoft SQL Server 2005 is Rapidly Approaching
    Microsoft has set the end of extended support for SQL Server 2005 for April 2016—less than a year away. With support for Microsoft Windows 2003 ending in July 2015, time may already be running short.
    If you're running Windows Server 2003, new server hardware is almost certainly needed when you upgrade SQL Server. Evaluate your server and storage options now to get costs under control.
    Test Methodology
    To test the impact of flash on SQL Server performance, we replaced a legacy HDD-based storage system with an All Flash FAS AFF8080 EX. The legacy system was configured with almost 150 HDDs, a typical configuration for HDD storage supporting SQL Server. The AFF8080 EX used just 48 SSDs.
    Table 1) Components used in testing.
    Test Configuration Components
    Details
    SQL Server 2014 servers
    Fujitsu RX300
    Server operating system
    Microsoft Windows 2012 R2 Standard Edition
    SQL Server database version
    Microsoft SQL Server 2014 Enterprise Edition
    Processors per server
    2 6-core Xeon E5-2630 at 2.30 GHz
    Fibre channel network
    8Gb FC with multipathing
    Storage controller
    AFF8080 EX
    Data ONTAP version
    Clustered Data ONTAP® 8.3.1
    Drive number and type
    48 SSD
    Source: NetApp, 2015
    The test configuration consisted of 10 database servers connected through fibre channel to both the legacy storage system and the AFF8080 EX. Each of the 10 servers ran SQL Server 2014 Enterprise Edition.
    The publicly available HammerDB workload generator was used to drive an OLTP-like workload simultaneously from each of the 10 database servers to storage. We first directed the workload to the legacy storage array to establish a baseline, increasing the load to the point where read latency consistently exceeded 20ms.
    That workload was then directed at the AFF8080 EX. The change in storage resulted in an overall 20x reduction in read latency, a greater than 4x improvement in IOPS, and a greater than 4x improvement in database server CPU utilization.
    Figure 2) NetApp All Flash FAS increases IOPS and server CPU utilization and lowers latency.
    Source: NetApp, 2015
    In other words, the database servers are able to process four times as many IOPS with dramatically lower latency. CPU utilization goes up accordingly because the servers are processing 4x the work per unit time.
    The All Flash FAS system still had additional headroom under this load.
    Calculating the Savings
    Let's look at what this performance improvement means for the total cost of running SQL Server 2014 over a 3-year period. To do the analysis we used NetApp Realize, a storage modeling and financial analysis tool designed to help quantify the value of NetApp solutions and products. NetApp sales teams and partners use this tool to assist with return on investment (ROI) calculations.
    The calculation includes the cost of the AFF8080 EX, eliminates the costs associated with the existing storage system, and cuts the total number of database servers from 10 to five. This reduces SQL Server licensing costs by 50%. The same workload was run with five servers and achieved the same results. ROI analysis is summarized in Table 2.
    Table 2) ROI from replacing an HDD-based storage system with All Flash FAS, thereby cutting server and licensing costs in half.
    Value
    Analysis Results
    ROI
    65%
    Net present value (NPV)
    $950,000
    Payback period
    six months
    Total cost reduction
    More than $1 million saved over a 3-year analysis period compared to the legacy storage system
    Savings on power, space, and administration
    $40,000
    Additional savings due to nondisruptive operations benefits (not included in ROI)
    $90,000
    Source: NetApp, 2015
    The takeaway here is that you can replace your existing storage with All Flash FAS and get a big performance bump while substantially reducing your costs, with the majority of the savings derived from the reduction in SQL Server licensing costs.
    Replace your existing storage with All Flash FAS and get a big performance bump while substantially reducing your costs.
    Maximum SQL Server 2014 Performance
    In addition to the ROI analysis, we also measured the maximum performance of the AFF8080 EX with SQL Server 2014. A load-generation tool was used to simulate an industry-standard TPC-E OLTP workload against an SQL Server 2014 test configuration.
    A two-node AFF8080 EX achieved a maximum throughput of 322K IOPS at just over 1ms latency. For all points other than the maximum load point, latency was consistently under 1ms and remained under 0.8ms up to 180K IOPS.
    Data Reduction and Storage Efficiency
    In addition to performance testing, we looked at the overall storage efficiency savings of our SQL Server database implementation. The degree of compression that can be achieved is dependent on the actual data that is written and stored in the database. For this environment, inline compression was effective. Deduplication, as is often the case in database environments, provided little additional storage savings and was not enabled.
    For the test data used in the maximum performance test, we measured a compression ratio of 1.5:1. We also tested inline compression on a production SQL Server 2014 data set to further validate these results and saw a 1.8:1 compression ratio.
    Space-efficient NetApp Snapshot® copies provide additional storage efficiency benefits for database environments. Unlike snapshot methods that use copy-on-write, there is no performance penalty; unlike full mirror copies, NetApp Snapshot copies use storage space sparingly. Snapshot copies only consume a small amount of storage space for metadata and additional incremental space is consumed as block-level changes occur. In a typical real-world SQL Server deployment on NetApp storage, database volume Snapshot copies are made every two hours.
    First introduced more than 10 years ago, NetApp FlexClone® technology also plays an important role in SQL Server environments. Clones are fully writable, and, similar to Snapshot copies, only consume incremental storage capacity. With FlexClone, you can create as many copies of production data as you need for development and test, reporting, and so on. Cloning is a great way to support the development and test work needed when upgrading from an earlier version of SQL Server. You'll sometimes see these types of capabilities referred to as "copy data management."
    A Better Way to Run Enterprise Applications
    The performance benefits that all-flash storage can deliver for database environments are significant: more IOPS, lower latency, and an end to near-constant performance tuning.
    If you think the performance acceleration that comes with all-flash storage is cost prohibitive, think again. All Flash FAS doesn't just deliver a performance boost, it changes the economics of your operations, paying for itself with thousands in savings on licensing and server costs. In terms of dollars per IOPS, All Flash FAS is extremely economical relative to HDD.
    And, because All Flash FAS runs NetApp clustered Data ONTAP, it delivers the most complete environment to support SQL Server and all your enterprise applications with capabilities that include comprehensive storage efficiency, integrated data protection, and deep integration for your applications.
    For complete details on this testing look for NetApp TR-4303, which will be available in a few weeks. Stay tuned to Tech OnTap for more information as NetApp continues to run benchmarks with important server workloads including Oracle DB and server virtualization.
    Learn more about NetApp solutions for SQL Server and NetApp All-flash solutions.
    Quick Links
    Tech OnTap Community
    Archive
    PDF

    May 2015
    Explore
    The Buzz from Microsoft Ignite 2015
    NetApp was in full force at the recent Microsoft Ignite show in Chicago, talking about solutions for hybrid cloud, and our proven solutions for Microsoft SQL Server and other Microsoft applications.
    Hot topics at the NetApp booth included:
    OnCommand® Shift. A revolutionary technology that lets you move virtual machines back and forth between VMware and Hyper-V environments in minutes.
    Azure Site Recovery to NetApp Private Storage. Replicate on-premises SAN-based applications to NPS for disaster recovery in the Azure cloud.
    These tools give you greater flexibility for managing and protecting important business applications.
    Chris Lemmons
    Director, EIS Technical Marketing, NetApp
    If your organization runs databases such as Microsoft SQL Server and Oracle DB, you probably know that these vendors primarily license their products on a "per-core" basis. Microsoft recently switched to "per-core" rather than "per-socket" licensing for SQL Server 2012 and 2014. This change can have a big impact on the total cost of operating a database, especially as core counts on new servers continue to climb. It turns out that the right storage infrastructure can drive down database costs, increase productivity, and put your infrastructure back in balance.
    In many customer environments, NetApp has noticed that server CPU utilization is low—often on the order of just 20%. This is usually the result of I/O bottlenecks. Server cores have to sit and wait for I/O from hard disk drives (HDDs). We've been closely studying the impact of all-flash storage on SQL Server environments that use HDD-based storage systems. NetApp® All Flash FAS platform delivers world-class performance for SQL Server plus the storage efficiency, application integration, nondisruptive operations, and data protection of clustered Data ONTAP®, making it ideal for SQL Server environments.
    Tests show that All Flash FAS can drive up IOPS and database server CPU utilization by as much as 4x. And with a 95% reduction in latency, you can achieve this level of performance with half as many servers. This reduces the number of servers you need and the number of cores you have to license, driving down costs by 50% or more and paying back your investment in flash in as little as six months.
    Figure 1) NetApp All Flash FAS increases CPU utilization on your SQL Server database servers, lowering costs.
    Source: NetApp, 2015
    Whether you're running one of the newer versions of SQL Server or facing an upgrade of an earlier version, you can't afford not to take a second look at your storage environment.
    End of Support for Microsoft SQL Server 2005 is Rapidly Approaching
    Microsoft has set the end of extended support for SQL Server 2005 for April 2016—less than a year away. With support for Microsoft Windows 2003 ending in July 2015, time may already be running short.
    If you're running Windows Server 2003, new server hardware is almost certainly needed when you upgrade SQL Server. Evaluate your server and storage options now to get costs under control.
    Test Methodology
    To test the impact of flash on SQL Server performance, we replaced a legacy HDD-based storage system with an All Flash FAS AFF8080 EX. The legacy system was configured with almost 150 HDDs, a typical configuration for HDD storage supporting SQL Server. The AFF8080 EX used just 48 SSDs.
    Table 1) Components used in testing.
    Test Configuration Components
    Details
    SQL Server 2014 servers
    Fujitsu RX300
    Server operating system
    Microsoft Windows 2012 R2 Standard Edition
    SQL Server database version
    Microsoft SQL Server 2014 Enterprise Edition
    Processors per server
    2 6-core Xeon E5-2630 at 2.30 GHz
    Fibre channel network
    8Gb FC with multipathing
    Storage controller
    AFF8080 EX
    Data ONTAP version
    Clustered Data ONTAP® 8.3.1
    Drive number and type
    48 SSD
    Source: NetApp, 2015
    The test configuration consisted of 10 database servers connected through fibre channel to both the legacy storage system and the AFF8080 EX. Each of the 10 servers ran SQL Server 2014 Enterprise Edition.
    The publicly available HammerDB workload generator was used to drive an OLTP-like workload simultaneously from each of the 10 database servers to storage. We first directed the workload to the legacy storage array to establish a baseline, increasing the load to the point where read latency consistently exceeded 20ms.
    That workload was then directed at the AFF8080 EX. The change in storage resulted in an overall 20x reduction in read latency, a greater than 4x improvement in IOPS, and a greater than 4x improvement in database server CPU utilization.
    Figure 2) NetApp All Flash FAS increases IOPS and server CPU utilization and lowers latency.
    Source: NetApp, 2015
    In other words, the database servers are able to process four times as many IOPS with dramatically lower latency. CPU utilization goes up accordingly because the servers are processing 4x the work per unit time.
    The All Flash FAS system still had additional headroom under this load.
    Calculating the Savings
    Let's look at what this performance improvement means for the total cost of running SQL Server 2014 over a 3-year period. To do the analysis we used NetApp Realize, a storage modeling and financial analysis tool designed to help quantify the value of NetApp solutions and products. NetApp sales teams and partners use this tool to assist with return on investment (ROI) calculations.
    The calculation includes the cost of the AFF8080 EX, eliminates the costs associated with the existing storage system, and cuts the total number of database servers from 10 to five. This reduces SQL Server licensing costs by 50%. The same workload was run with five servers and achieved the same results. ROI analysis is summarized in Table 2.
    Table 2) ROI from replacing an HDD-based storage system with All Flash FAS, thereby cutting server and licensing costs in half.
    Value
    Analysis Results
    ROI
    65%
    Net present value (NPV)
    $950,000
    Payback period
    six months
    Total cost reduction
    More than $1 million saved over a 3-year analysis period compared to the legacy storage system
    Savings on power, space, and administration
    $40,000
    Additional savings due to nondisruptive operations benefits (not included in ROI)
    $90,000
    Source: NetApp, 2015
    The takeaway here is that you can replace your existing storage with All Flash FAS and get a big performance bump while substantially reducing your costs, with the majority of the savings derived from the reduction in SQL Server licensing costs.
    Replace your existing storage with All Flash FAS and get a big performance bump while substantially reducing your costs.
    Maximum SQL Server 2014 Performance
    In addition to the ROI analysis, we also measured the maximum performance of the AFF8080 EX with SQL Server 2014. A load-generation tool was used to simulate an industry-standard TPC-E OLTP workload against an SQL Server 2014 test configuration.
    A two-node AFF8080 EX achieved a maximum throughput of 322K IOPS at just over 1ms latency. For all points other than the maximum load point, latency was consistently under 1ms and remained under 0.8ms up to 180K IOPS.
    Data Reduction and Storage Efficiency
    In addition to performance testing, we looked at the overall storage efficiency savings of our SQL Server database implementation. The degree of compression that can be achieved is dependent on the actual data that is written and stored in the database. For this environment, inline compression was effective. Deduplication, as is often the case in database environments, provided little additional storage savings and was not enabled.
    For the test data used in the maximum performance test, we measured a compression ratio of 1.5:1. We also tested inline compression on a production SQL Server 2014 data set to further validate these results and saw a 1.8:1 compression ratio.
    Space-efficient NetApp Snapshot® copies provide additional storage efficiency benefits for database environments. Unlike snapshot methods that use copy-on-write, there is no performance penalty; unlike full mirror copies, NetApp Snapshot copies use storage space sparingly. Snapshot copies only consume a small amount of storage space for metadata and additional incremental space is consumed as block-level changes occur. In a typical real-world SQL Server deployment on NetApp storage, database volume Snapshot copies are made every two hours.
    First introduced more than 10 years ago, NetApp FlexClone® technology also plays an important role in SQL Server environments. Clones are fully writable, and, similar to Snapshot copies, only consume incremental storage capacity. With FlexClone, you can create as many copies of production data as you need for development and test, reporting, and so on. Cloning is a great way to support the development and test work needed when upgrading from an earlier version of SQL Server. You'll sometimes see these types of capabilities referred to as "copy data management."
    A Better Way to Run Enterprise Applications
    The performance benefits that all-flash storage can deliver for database environments are significant: more IOPS, lower latency, and an end to near-constant performance tuning.
    If you think the performance acceleration that comes with all-flash storage is cost prohibitive, think again. All Flash FAS doesn't just deliver a performance boost, it changes the economics of your operations, paying for itself with thousands in savings on licensing and server costs. In terms of dollars per IOPS, All Flash FAS is extremely economical relative to HDD.
    And, because All Flash FAS runs NetApp clustered Data ONTAP, it delivers the most complete environment to support SQL Server and all your enterprise applications with capabilities that include comprehensive storage efficiency, integrated data protection, and deep integration for your applications.
    For complete details on this testing look for NetApp TR-4303, which will be available in a few weeks. Stay tuned to Tech OnTap for more information as NetApp continues to run benchmarks with important server workloads including Oracle DB and server virtualization.
    Learn more about NetApp solutions for SQL Server and NetApp All-flash solutions.
    Quick Links
    Tech OnTap Community
    Archive
    PDF

  • SETUP ERROR WHILE INSTALLING SQL SERVER 2008 R2

    Hi ,
    I'm coming across the following error while installing Microsoft SQL Server 2008R2
    SQL Server Setup has encountered the following error:
    The required MSI package 'D:\SQL Sever 2008 R2 Developer Edition\x86\setup\sql_engine_core_shared_msi\sql_engine_core_shared.msi' doesn't exist.
    Error code 0x84B20001.
    I tried reinstalling the same. But results the same.
    Please suggest. :)

    Overall summary:
      Final result:                  SQL Server installation failed. To continue, investigate the reason for the failure, correct the problem, uninstall SQL Server, and then
    rerun SQL Server Setup.
      Exit code (Decimal):           -2068709375
      Exit facility code:            1202
      Exit error code:               1
      Exit message:                  The required MSI package 'D:\softwares\SQL Sever 2008 R2 Developer Edition\x86\setup\sql_engine_core_shared_msi\sql_engine_core_shared.msi'
    doesn't exist.
      Start time:                    2013-12-31 20:47:50
      End time:                      2013-12-31 20:55:44
      Requested action:              Install
      Log with failure:              C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20131231_204629\Detail.txt
      Exception help link:           http%3a%2f%2fgo.microsoft.com%2ffwlink%3fLinkId%3d20476%26ProdName%3dMicrosoft%2bSQL%2bServer%26EvtSrc%3dsetup.rll%26EvtID%3d50000%26ProdVer%3d10.50.1600.1%26EvtType%3d0xD2FD83B3%400xC2B0B50B%401202%401
    Machine Properties:
      Machine name:                  SAMPLE-PC
      Machine processor count:       2
      OS version:                    Windows 7
      OS service pack:              
      OS region:                     United States
      OS language:                   English (United States)
      OS architecture:               x86
      Process architecture:          32 Bit
      OS clustered:                  No
    Product features discovered:
      Product              Instance             Instance ID                   
    Feature                                  Language            
    Edition              Version         Clustered
      Sql Server 2005                                                         
    Tools                                    1033                
    Express Edition      9.2.3042        No       
      Sql Server 2005                                                         
    ToolsClient                              1033                
    Express Edition      9.2.3042        No       
      Sql Server 2005                                                         
    ToolsClient\Connectivity                 1033                 Express Edition     
    9.2.3042        No       
      Sql Server 2008      SQLEXPRESS           MSSQL10.SQLEXPRESS             Database Engine Services                
    1033                 Express Edition      10.1.2531.0     No       
      Sql Server 2008      SQLEXPRESS           MSSQL10.SQLEXPRESS             SQL Server Replication                  
    1033                 Express Edition      10.1.2531.0     No       
    Package properties:
      Description:                   SQL Server Database Services 2008 R2
      ProductName:                   SQL Server 2008 R2
      Type:                          RTM
      Version:                       10
      SPLevel:                       0
      Installation location:         D:\softwares\SQL Sever 2008 R2 Developer Edition\x86\setup\
      Installation edition:          DEVELOPER
    User Input Settings:
      ACTION:                        Install
      ADDCURRENTUSERASSQLADMIN:      False
      AGTSVCACCOUNT:                 TEST
      AGTSVCPASSWORD:                *****
      AGTSVCSTARTUPTYPE:             Manual
      ASBACKUPDIR:                   C:\Program Files\Microsoft SQL Server\MSAS10_50.TEST\OLAP\Backup
      ASCOLLATION:                   Latin1_General_CI_AS
      ASCONFIGDIR:                   C:\Program Files\Microsoft SQL Server\MSAS10_50.TEST\OLAP\Config
      ASDATADIR:                     C:\Program Files\Microsoft SQL Server\MSAS10_50.TEST\OLAP\Data
      ASDOMAINGROUP:                 <empty>
      ASLOGDIR:                      C:\Program Files\Microsoft SQL Server\MSAS10_50.TEST\OLAP\Log
      ASPROVIDERMSOLAP:              1
      ASSVCACCOUNT:                  TEST
      ASSVCPASSWORD:                 *****
      ASSVCSTARTUPTYPE:              Automatic
      ASSYSADMINACCOUNTS:            SAMPLE-PC\SAMPLE
      ASTEMPDIR:                     C:\Program Files\Microsoft SQL Server\MSAS10_50.TEST\OLAP\Temp
      BROWSERSVCSTARTUPTYPE:         Automatic
      CONFIGURATIONFILE:             C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20131231_204629\ConfigurationFile.ini
      CUSOURCE:                     
      ENABLERANU:                    False
      ENU:                           True
      ERRORREPORTING:                False
      FARMACCOUNT:                   <empty>
      FARMADMINPORT:                 0
      FARMPASSWORD:                  *****
      FEATURES:                      SQLENGINE,REPLICATION,FULLTEXT,AS,RS,BIDS,CONN,IS,BC,SDK,SSMS,ADV_SSMS
      FILESTREAMLEVEL:               0
      FILESTREAMSHARENAME:           <empty>
      FTSVCACCOUNT:                  NT AUTHORITY\LOCAL SERVICE
      FTSVCPASSWORD:                 *****
      HELP:                          False
      IACCEPTSQLSERVERLICENSETERMS:  False
      INDICATEPROGRESS:              False
      INSTALLSHAREDDIR:              C:\Program Files\Microsoft SQL Server\
      INSTALLSHAREDWOWDIR:           C:\Program Files\Microsoft SQL Server\
      INSTALLSQLDATADIR:             <empty>
      INSTANCEDIR:                   C:\Program Files\Microsoft SQL Server\
      INSTANCEID:                    TEST
      INSTANCENAME:                  TEST
      ISSVCACCOUNT:                  TEST
      ISSVCPASSWORD:                 *****
      ISSVCSTARTUPTYPE:              Automatic
      NPENABLED:                     0
      PASSPHRASE:                    *****
      PCUSOURCE:                    
      PID:                           *****
      QUIET:                         False
      QUIETSIMPLE:                   False
      ROLE:                          <empty>
      RSINSTALLMODE:                 DefaultNativeMode
      RSSVCACCOUNT:                  SAMPLE-PC\TEST
      RSSVCPASSWORD:                 *****
      RSSVCSTARTUPTYPE:              Automatic
      SAPWD:                         *****
      SECURITYMODE:                  <empty>
      SQLBACKUPDIR:                  <empty>
      SQLCOLLATION:                  SQL_Latin1_General_CP1_CI_AS
      SQLSVCACCOUNT:                 TEST
      SQLSVCPASSWORD:                *****
      SQLSVCSTARTUPTYPE:             Automatic
      SQLSYSADMINACCOUNTS:           SAMPLE-PC\SAMPLE
      SQLTEMPDBDIR:                  <empty>
      SQLTEMPDBLOGDIR:               <empty>
      SQLUSERDBDIR:                  <empty>
      SQLUSERDBLOGDIR:               <empty>
      SQMREPORTING:                  False
      TCPENABLED:                    0
      UIMODE:                        Normal
      X86:                           False
      Configuration file:            C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20131231_204629\ConfigurationFile.ini
    Detailed results:
      Feature:                       Database Engine Services
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       SQL Server Replication
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Full-Text Search
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Analysis Services
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Reporting Services
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Integration Services
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Client Tools Connectivity
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Management Tools - Complete
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Management Tools - Basic
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Client Tools SDK
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Client Tools Backwards Compatibility
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Business Intelligence Development Studio
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
    Rules with failures:
    Global rules:
    Scenario specific rules:
    Rules report file:               C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20131231_204629\SystemConfigurationCheck_Report.htm
    Exception summary:
    The following is an exception stack listing the exceptions in outermost to innermost order
    Inner exceptions are being indented
    Exception type: Microsoft.SqlServer.Chainer.Infrastructure.ChainerInvalidOperationException
        Message:
            The required MSI package 'D:\softwares\SQL Sever 2008 R2 Developer Edition\x86\setup\sql_engine_core_shared_msi\sql_engine_core_shared.msi' doesn't exist.
        Data:
          ChainerInvalidOperationExceptionData = InstallPackage
          DisableWatson = true
        Stack:
            at Microsoft.SqlServer.Configuration.SetupExtension.MsiInstallEngineActionBehavior.ModifyAction(String installedProductCode, String installedProductVersion, String pathOfPackageOnMedia, InstallAction pkgAction)
            at Microsoft.SqlServer.Configuration.SetupExtension.MSIInstallerEngine.InstallPackage(PackageId pkg, InstallAction pkgAction)
            at Microsoft.SqlServer.Configuration.MsiExtension.PackageInstallAction.Execute(String actionId, TextWriter errorStream)
            at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)

  • Why SCCM 20012 Install fails with remote 64 bit SQL Server but proceeds for remote 32 bit SQL Server

    I have the following setup:
    AD User accounts
    - SQLAdmin (used to run SQL Services i.e. Database Engine)
    - SCCMADmin (used to install SCCM 2012)
    SPN registered for user account SQLAdmin
    setspn -S MSSQLSvc/SQL.Domain_Name:1432 Domain_Naem\SQLAdmin
    setspn -S MSSQLSvc/SQL:1432 Domain_Name\SQLAdmin
    setspn -S MSSQLSvc/SQL.Domain_Name:1433 Domain_Naem\SQLAdmin
    setspn -S MSSQLSvc/SQL:1433 Domain_Name\SQLAdmin
    and checked with setspn -L TESTING\SQLAdmin
    1 SERVER called SQL
    32bit Server with SQL Server 2008 + SP3 + Cumulative Update 6
    2 SQL instances - Default (MSSQLSERVER) and
    SCCM2012
    MSSQLSERVER instance uses TCP port 1433
    SCCM2012 Instance users TCP port 1432 (no dynamic ports)
    User accounts that have been given public and sysadmin SQL server roles
    on both instances are: SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
    Client Protocols TCP enabled (and Named Pipes) (checked via SQL Server Configuration Manager)
    Local Administrators Group on this server has members - SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
    Firewall turned on with access allowed on Ports 1432, 1433, 4022,445, and WMI - WMI-in, DCOM-in and ASync-iN builtin rules allowed\enabled.
    1 SERVER called SQL3
    64bit Server with SQL Server 2008 + SP3 + Cumulative Update 6
    2 SQL instances - Default (MSSQLSERVER) and
    SCCM2012
    MSSQLSERVER instance uses TCP port 1433
    SCCM2012 Instance users TCP port 1432 (no dymanic ports)
    User accounts that have been given public and sysafmin SQL server roles on both instances are:
    SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
    Client Protocols TCP enabled (and Named Pipes) (checked via SQL Server Configuration Manager)
    Local Administrators Group on this server has members - SQLAdmin, SCCMAdmin, Domain Administrator, Local Administrator and computer account SCCM
    Firewall turned off
    1 SERVER called SCCM
    64bit Server that is to be the Primary Site Server\MP for SCCM 2012
    ODBC link to SQL\SCCM2012,1432
    ODBC link to SQL3\SCCM2012,1432
    ODBC uses SQL Native Client 10.0 (64 bit)
    Both ODBC connections when TESTed pass and suggest connectivity to SQL Servers
    Install process doe SCCM2012
    Tried to install SCCM 2012 RC2 when logged in to SCCM Server as AD user account
    SCCMAdmin,  and when utilising the SCCM2012 SQL instance on
    32 bit server of SQL install proceeds barring warning about 8GB rec, for SQL Server. Then fails on PKI certificate issue. Installation (chose HTTP for MP). I beleive the PKI failure as install starts is
    due to the fact that SCCM 2012 needs its database server to b 64 bit ?
    Thus i then tried to install SCCM 2012 RC2 when logged in to SCCM Server as AD user account SCCMAdmin,  and
    when using the SCCM2012 SQL instance on
    64 bit server of SQL install proceeds but fails at checking stage and says:
    SQL Server sysadmin rights FAILED SQL3.Domain_Name
    Either the user account running Configuration Manager Setup does not have sysadmin SQL Server role permissions on the SQL Server instance selected for site database installation, or the SQL Server instance could not be contacted to verify permissions. Setup
    cannot continue.
    and
    Site System to SQL Server communication  WARNING SCCM.Domain_Name
    A communication error has been detected between the specified site system and the site database computer. This error can occur when the site database server is offline or if a valid SPN has not been registered in Active Directory Domain Services for the SQL
    Server instance hosting the site database. Setup cannot continue.
    Why does the install of SCCM 2012 with 32 bit SQL proceed further than the install with 64 bit SQL, with the latter process failing as above error meesages show and yet both servers are set identically (apart from temporary turning off Firewall on the 64 
    bit server) and during the install the Databse Server specified is accepted ?

    Thanks for the reply.
    I can connect via ODBC to the the 32 bit SQL Server and the 64 bit SQL Server from the SCCM Server
    The SQL Server Unit called SQL3 unit is a 64 bit SQL.
    The SQL Server Unit called SQL is only 32 bit, but at least gets past the final checking stage and the error messages about sysadmin rights and Site System to SQL Server communication problem, and then fails with PKI certificate error message. 
    When trying to install SCCM specifying the 64 bit SQL Server as the Database Server it gives the 2 error messages at the final checking stage of the installation as listed.
    So as I said what is confusing is the fact that if the SCCM install uses the remote 32 bit SQL Server it passes the final checking (although fails with PKI certificate message) but the 64 bit SQL Server set up exactly the same apart from the Firewall being
    left off for the time being, fails at the final check stage with the 2 listed errors.
    If I use a local 64 bit SQL Server the installation is fine.
    Still would like to find out what cause the 2 issues for the remote 64 bit SQL Server, when ODBC seems fine, sysadmin rights have been given for the installer account and the SCCM computer account and SPNs have been set for the user account running the SQL
    Services.

  • Unit testing - problems using £ sign

    Sorry if this has come up before...
    We're using the SQL Developer unit testing functionality in what we thought was a fairly straightforward manner.
    We use a startup to set up some data, run a procedure with specific values for the inputs, compare the outputs with expected values, and then use a teardown to remove the data.
    All works well except for one output field. For reasons I won't bother to go into, it's a varchar2 field that returns an amount, in the format £9.99 - i.e. with a UK pound (£) sign at the start of the string.
    Whenever I try and input an expected value including the pound sign, the whole value gets converted to null - so, £9.50 gets saved as an expected value of null, which then, of course, causes the test to fail (unless we set it to ignore the value which somewhat defeats the point of testing !)
    Playing around a little, it seems that characters such as $ and # are ok, but any string that uses £ anywhere within it (e.g. 876f£ffe) gets saved as null.
    Has anyone else encountered this or have a workaround/fix ?
    (SQL Developer version 3.2.20.09, running on Windows XP 32-bit)

    Have you tried opening a new browser window as the new user? That is:
    1. Hold Shift and right click IE shortcut
    2. Select Run as different user
    3. Enter the new user's credentials
    4. Browse to the SharePoint site
    Jason Warren
    @jaspnwarren
    jasonwarren.ca
    habaneroconsulting.com/Insights

  • Unit testing and REF CURSORs

    Hi,
    Does anybody know when/if SQL Developer unit tests will support procedures that return reference cursors?
    Thanks
    Lee

    Support for REF CURSOR is already being considered for a future release although support will probably be under some size constraints as a REF CURSOR can obviously return a massive quantity of data in a production system which is beyond the brief of Unit Testing.

  • Unit Testing and Oracle Sessions

    We have an issue regarding Oracle session and SQL Developer Unit Testing.
    Every time we run a Unit Test in SQLDeveloper a new Oracle session is created. When closing that Unit Test, the session, however, is not disconnected.
    And the only way to close that "Unit Test" session is to close SQLDeveloper.
    This is causing problems with the no. of sessions available to developers.
    Any help would be much appreciated.
    Subboss

    The focus of this forum is report design. The actual testing of reports would be subject to your own internal policies and procedures.
    Jason

Maybe you are looking for