The basic license guide for Microsoft SQL Server is 40 pages in length.  This document references still more documents on various topics, options, and definitions used for licensing.  The license that one selects determines the conditions that will trigger additional costs required to stay functional over time. Is there an accurate application that can be used to determine pricing for the various licensing and project a timeline for potential additional costs as a function of time and growth? This would be a useful tool for proposal writers, legal teams, and planners. It is very clear that licensing has become it's own &quot;career track&quot; that favors large business. A tool or business that could provide an unambiguous set of costs and terms based on list price could be free small to medium sized businesses to move forward on projects with some measure of confidence.
2363
This is a  about Licensing.    Questions on licensing are off-topic on Server Fault.  If your question has been closed as a duplicate of this question, then this is because we want to help you understand why licence questions are off topic rather than just telling you "it just is". In all likelihood, this question will not address your question directly, it was not meant to.    I have a question regarding software licensing. Can the Server Fault community please help with the following:   How many licenses do I need? Is this licensing configuration valid? What CALs do I need to be properly licensed? Can I run this product in a virtual environment? Can I downgrade this product to an earlier version? Am I entitled to feature X with license Y?
57679
We're going to host a large SQL Server 2012 under a VMware virtualization and we need it to be highly available.  These are the three options I found supported, but couldn't find a lot of info and comparison on who's better and why (and mostly - what's the disadvantages):   VMware HA - pro: cheap and easy to use and configure, just let the VM team deal with it. con: no HA for system upgrades, e.g. SQL upgrades, Windows services-packs\KBs etc. SQL Server Failover Cluster (FCS) - pro: well known, supported, saves space (compared to AlwaysOn Availability Group), HA for system upgrades. con: I haven't heard of successful clusters over VM, or at least good ones. Heard it's a mess and to "stay away from it". A bit harder to admin, some problems may take days to figure out (no-one with a lot of knowledge). SQL Server AlwaysOn Availability Group - pro: HA for everything! system, DB etc. con: New, added administering and hard to confiugre, new problems to deal with, double the space(!), "no strings attached" (to other servers).   That's pretty much it.  I would appreciate any info you may have about this, and would appreciate even more recommendations (hopefully based on test cases).  ~Thanks.
116522
I am considering applying the Service Pack 3 in a SQL Server 2008 with Service Pack 1; however, I was not able to find if there are any drawbacks in this process, specially regarding to Replication Services and Reporting Services.   Has someone done this kind of update? Was it smooth or did it generate many issues?
20822
I've been running an auto-index tool on our MS SQL database (I modified a script originating from Microsoft that looks at the index statistics tables - ). From the stats, I now have a list of recommendations for indexes that need creating.  Edit: The Indexes described above take information from the DMV's that tell you what the database engine would use for indexes if they were available and the scripts take the Top x recommendations (by seeks, user impact etc.) and put these in a table.  (Edit above partially taken from Larry Coleman's answer below in order to clarify what the scripts are doing)  As I am new to database admin, and having had a quick search around the net, I am reluctant to take the plunge and blindly add the recommended indexes. However, not being experienced in  the field, I am looking for some advice on how to determine whether the recommendations are necessary or not.  Do I need to run the SQL Profiler, or is it better to examine the code that queries the tables? And do you have any other advice?
110185
I have recently inherited a codebase with a large amount of Stored Procedures.  The system they are supporting is encountering numerous performance problems which I am looking in to.  A number of the Stored Procedures have a pattern like this:   Create Temp table Build up dynamic SQL query to insert a bunch of records, e.g.  DECLARE @sql VARCHAR(MAX) SET @sql = 'INSERT INTO @tempTable SELECT SomeColumn, SomeColumn2, SomeColumn3, etc FROM MyTable'  IF @someParam = [SomeValue]     SET @sql = @sql + 'WHERE SomeColumn = [SomeValue]';  IF @someOtherParam = [SomeOtherValue]     SET @sql = @sql + 'WHERE SomeOtherColum = [SomeOtherValue]';  Execute this dynamic sql  EXEC(@sql);  Select from the temp table and bring in a bunch of additional information to return to the client.  SELECT     ...  FROM     @tempTable    INNER JOIN ...    My immediate thoughts are:   There is dynamic SQL, so no cache plans, meaning plans generated every time. There is an INSERT SELECT pattern, so table locking is more likely to be an issue.   I have re-written some of the Stored Procedures in this way instead:      SELECT          ...      FROM          MyTable          INNER JOIN ...      WHERE      (         @someParam != SomeValue         OR         SomeColumn = SomeValue     )     AND     (         @someOtherParam != SomeOtherValue         OR         SomeOtherColumn = SomeOtherValue     )           From comparing execution plans and client statistics in SQL Management Studio, I have not sped the Stored Procedures up so I am apprehensive about suggesting wholesale re-writes of all Stored Procedures.  I am trying to set up some profiling of a live customer scenario, but as yet have been unable to prove my thoughts.  Can anyone offer any confirmation of the theory behind my thoughts, or any better ways of proving my suspicions?  The problem is I have read that dynamic SQL is not always a closed case - i.e. it depends on how it is used.  My understanding of locking also falls down at the fact that nowhere can I get 100% confirmation of how this type of INSERT SELECT will lock tables.
27987
I have a SQL Server 2012 database. I noticed value of Reason for early termination of statement optimization for some queries and all gave Good Enough Plan Found. Now my questions are:   What are all the possible types of  “Reason for early termination of statement optimization”. I did searching for this in msdn but didn’t get a complete list of values. Is there a DMV or extended event to list all queries for which optimization was terminated due to reasons other than Good Enough Plan Found? I referred following two articles which does not list the complete list of possibilities. [Also, they give me different result in my database].
28203
Hi I've stumbled into the administration of a Legacy SQL 2000 server that has had next to no maintenance for the past 8 years (and is very slow).  As I have only been doing DBA / PT for the past 2 years (I'm primarily a Developer) I don't have allot of experience on 2000.  Can anyone point me in the direction of some maintenance, tuning scripts.  Just figured I'd ask first before I reinvent the wheel for something I will rarely use.  Thanks Guys / Girls !
46775
I was hoping I would find some people in the industry that could help me decide what's the best price to charge to design (in this case) business cards.  What are standard prices for professional designers?  From a firm point of view? From a freelancer?  I don't want to overcharge clients but I don't want to ruin the industry by underselling my services.
74129
I'm a software engineer, not a lawyer, and my university doesn't offer any courses geared toward licensing software. In fact, their law-related courses are lacking (but slowly growing in number). Where can I go to learn about open-source licenses and how to choose them?
3216
We are running a SQL Server 2008 R2 Standard Evaluation version. The client has decided they don't want to pay for full SQL Server standard and feel the Web edition is suitable. Can I downgrade SQL Server 2008 R2 Standard Evaluation to Web Edition?  Obviously I need to put a licence on it. Can I just put the Web edition licence on it and it will become a Web Edition server or does it require a re-install.
78405
Based on my analysis, a complete dimensional model for our data warehouse will require extraction from over 200 source tables. Some of these tables will be extracted as part of an incremental load and others will be a full load. To note, we have about 225 source databases all the with the same schema. From what I've seen, building a simple data flow in SSIS with a OLE DB source and OLE DB destination requires the columns and data types to be determined at design time. This means that I will eventually end up with over 200 data flows just for the extraction alone. From a maintainability perspective, this strikes me as a big problem. If I needed to make some kind of sweeping change to the extraction code, I would have to modify 200 different data flows. An an alternative option, I wrote a small script which reads the source databases, table names and columns I want to extract from a set of metadata tables. The code runs in multiple loops and uses dynamic SQL to extract from the source tables via a linked server and OPENQUERY. Based on my tests, this is still not as fast as using an SSIS data flow with an OLEDB source and destination. So I am wondering what kind of alternatives I have. Thoughts so far include:  Using  to programatically generate SSIS packages with simple data flow. The tables and columns to extract would come from the same metadata tables mentioned earlier. Purchase 3rd party software (dynamic data flow component)  What is the best way to approach this? When it comes to .NET programming I'm a beginner, so the time required to ramp up just with the basics is also a concern.
115362
What is the best way to store a large amount of text in a table in SQL server?  Is varchar(max) reliable?
120238
I need to install SQL Server MSDE 2000 SP4 on Windows 10.  I have other machines that run Windows 7 and 8.1 and SQL Server MSDE 2000 works fine (with merge replication configured too).  Now I testing the same scenario with Windows 10, but setup is closing unexpectedly during installation.  I know that this version is very old, but is there a workaround to install it on Windows 10?
10493
Do you know a good source to learn how to design SQL solutions?  Beyond the basic language syntax, I'm looking for something to help me understand:   What tables to build and how to link them How to design for different scales (small client APP to a huge distributed website) How to write effective / efficient  / elegant SQL queries
81450
It is a known fact that the DMVs dont hold accurate information regarding number of pages and count of rows. However, when you have the stats updated, I can't see why they wouldn't.  I am working on a monitoring tool, want to know disk size of each index and data, etc. Eventually I would like to find the right fill factor, and other things etc.  The space used by my function and the old sp_spaceused differs a little bit on the space usage, but not on record count.  Can you see if there is anything missing in my select?  this is the sp_spaceused (then I convert the numbers in MB):  sp_spaceused 'tblBOrderRelationship' go  select 318008/1024.00 AS reserved, 140208/1024.00  AS data, 177048/1024.00 AS index_size, 752/1024.00    AS unused     But when I run my select, code below\picture below, I get slightly different figures.  SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED  SELECT      schema_name(t.schema_id) as SchemaName,     t.NAME AS TableName,     t.type_desc,     t.is_ms_shipped,     t.is_published,     t.lob_data_space_id,     t.filestream_data_space_id,     t.is_replicated,     t.has_replication_filter,     t.is_merge_published,     t.is_sync_tran_subscribed,     --t.is_filetable,     i.name as indexName,     i.type_desc,     i.is_unique,     i.is_primary_key,     i.is_unique_constraint,     i.fill_factor,     i.is_padded,       sum(p.rows)               OVER (PARTITION BY t.OBJECT_ID,i.index_id)  as RowCounts,     sum(a.total_pages)        OVER (PARTITION BY t.OBJECT_ID,i.index_id)  as TotalPages,      sum(a.used_pages)         OVER (PARTITION BY t.OBJECT_ID,i.index_id)  as UsedPages,      sum(a.data_pages)         OVER (PARTITION BY t.OBJECT_ID,i.index_id)  as DataPages,      (sum(a.total_pages)       OVER (PARTITION BY t.OBJECT_ID,i.index_id)  * 8) / 1024 as TotalSpaceMB,      (sum(a.used_pages)        OVER (PARTITION BY t.OBJECT_ID,i.index_id)  * 8) / 1024 as UsedSpaceMB,      (sum(a.data_pages)        OVER (PARTITION BY t.OBJECT_ID,i.index_id)  * 8) / 1024 as DataSpaceMB FROM      sys.tables t INNER JOIN           sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN      sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNER JOIN      sys.allocation_units a ON p.partition_id = a.container_id WHERE      t.NAME NOT LIKE 'dt%' AND     i.OBJECT_ID &gt; 255  AND T.NAME = 'tblBOrderRelationship'   the figures    the bigger picture, including the index names   Now doing some calculations to check the results:  --================================== -- the figures from sp_spaceused --================================== select 318008/1024.00 AS reserved, 140208/1024.00  AS data, 177048/1024.00 AS index_size, 752/1024.00    AS unused  --================================== -- the figures from my select --================================== select 137+61+56+54 AS reserved,        137 AS data,        61+56+54 AS index_size     It is not so far off, really, apart the fact I did not calculate the unused space!  What can I do to make this accurate?  AFTER CHANGES:  After I replaced 1024 by 1024.00 the results are much more accurate.  I noticed records have been inserted into the table in question, and obviously the stats are not so up to date, but still the results match (under 1 MB difference - which is all right for me)  The new result sets are:  --================================== -- the figures from sp_spaceused --================================== select 318072 /1024.00 AS reserved, 140208 /1024.00 AS data, 177096 /1024.00 AS index_size, 768 /1024.00 AS unused go  --================================== -- the figures from my select --================================== select 137.7578125+61.7968750+56.4218750+54.6406250 as reserved,        137.7578125 as data,        61.7968750+56.4218750+54.6406250 as index_size
17729
I have a conundrum that I am getting mixed advice on how to go about.  Therefore id like to put it to GIS-SE for some justified answers.  Scenario:     Client has a web mapping application.  Does not want to split into multiple smaller applications.  Although this goes against what the modern day approach is for maps on the web,  (i.e. lots of focussed web-map apps over one main web-map) I strongly believe that for some users, trying to replicate a GIS application on the web is ok (). Client has cached as much of his basemap layers into separate services. Client still requires an additional 600-700 layers in a dynamic map service... The service will be published with all of these layers turned off. It is not anticipated that users will turn on more than 10-40 layers at a time.   I imagine your initial reaction to this is similar to mine (600+?! WTF?!)  However - the requirement is set in stone and why not?  Their prior ArcIMS application had similar functionality, so why can't this newer ArcGIS Server product do the same?  The users potentially need to be able to cross compare and perform analysis on the entire range of layers, even if the layers belong to other departments.  Before you jump to conclusions, the client is a clued up ArcGIS Server admin. They have administered the 600 layers by all of the best practice rules: e.g. scale ranges combined with definition queries; annotation over labelling; generalising complex layers at small scales; publish as MSDs; etc  Problem:  What is the better approach here?     Publish all 600 layers into one dynamic map service   Split the layers into logical groupings (hydrology, planning, ecology, utilities, etc)   If you go with #1, and you have a few complex layers turned on.  If you want to turn on a simple points layer, then ArcGIS Server will still have to render the entire layers being displayed all over again.  If you go with #2, each time your making a request, potentially, the web application could have to make several GET requests for ExportMaps from the individual map services (is this bad, or does it create additional load to ArcGIS Server over #1?)  And then this leads to configuration &amp; tuning to ensure everything is as quick as possible. We can scale the back end of ArcGIS Server to multiple hosts and have some good hardware to sit it on.  If you go with #1, you can throw the maximum # of instances that you AGS can handle.  If you go with #2, I assume you evaluate the performance of the map services (load testing and look at wait times) and address the min/max instances accordingly to ensure there is not one service that is a 'weak link'.  Im currently leaning towards the #2 approach, as my head is still telling me that having 600 layers in one service is madness, but if they are all turned off by default, there really is no issue.  Would love to hear your thoughts.  Let me know if you need more info via the comments, but not looking for answers like 'use a desktop application' or 'educate them to do things differently'    From discussions in comments, I failed to mention another consideration.  The application that the service will be consumed within, has the ability for layer level security (at the application level).  Therefore the group of users (that is fairly large) are assigned to a particular role, and that role will have access to the full 600 layers.  Other roles will be limited.
20632
Is there an easy way to chase down table/stored procedure/function dependencies in SQL Server 2005+?  I've inherited a giant application with lots of tables and even more stored procedures and functions that are long and interlinked.    At the end of the day is there a way to build a dependency tree?  Ideally what I'm looking for goes in both directions:  For a table/procedure - what depends ON it?:  Show me all the stored procedures that eventually reference it (ideally in a tree view such that sub procedures nest out to the bigger procedures that call them)  For a procedure - what does IT depend on?:  Show me all the procedures and tables that a given procedure will (or could) touch when running.  It seems this tool shouldn't be that hard to make and would be incredibly useful for DB maintenance generally.  Is anyone aware of such a thing?  If this doesn't exist, why the heck not?  The built-in functionality in Management Studio is nice but the information does not appear to be complete at all.