I have tried many variations (after reviewing other posts) and can not
resolve the following issue:
RUNNING SQL MAINTENANCE
----------------------------
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET NUMERIC_ROUNDABORT OFF
exec master..xp_sqlmaint '-D SBC -UpdOptiStats 10 -RebldIdx 10'
--tried UpdOptiStats and RebldIdx separately with same results
RECEIVE THE FOLLOWING MESSAGE
------------------------------
[Microsoft SQL-DMO (ODBC SQLState: 42000)]
Error 1934: [Microsoft][ODBC SQL Server Driver][SQL Server]
UPDATE STATISTICS failed because the following SET options have
incorrect settings: 'QUOTED_IDENTIFIER, ARITHABORT
SERVER SETUP
-------------------------------
Windows 2000, Service Pack 4
SQL Server 2000 Standard Edition, Service Pack 3
Hi, i have problem as subject says. Db has table with 3 columns, ID, Key and Val. ID is primary key, Key has unique index and Val simple holds value in text format. I have created DAL layer using .netTiers and CodeSmith. Generated procedures.sql has before every procedure set ANSI_NULLS to OFF. When i read rows from table i print them on screen. When user changes value, that should also be updated in database. When i select entity, its value is changed. Here is code snipper.
UPDATE failed because the following SET options have incorrect settings: 'ANSI_NULLS'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or query notifications and/or xml data type methods.
Also, class which hold previous code snipper supports caching, by using some kind of SqlCacheManager, which is above SqlCacheDependecy class. Database service broker is started by
Code Block ALTER DATABASE <DB_NAME> SET ENABLE_BROKER
Server is SqlExpress 2005. Application is in ASP.NET 2.0.
I also noticed next. On first run, previous code passes without errors. On second run, update error appears.
This is log from sql server.
Code BlockQuery notification delivery could not send message on dialog '{822C7891-736E-DC11-836B-005056C00008}.'. Delivery failed for notification '<qn:QueryNotification xmlns:qn="http://schemas.microsoft.com/SQL/Notifications/QueryNotificationhttp://schemas.microsoft.com/SQL/Notifications/QueryNotification">http://schemas.microsoft.com/SQL/Notifications/QueryNotification</A< A>>" id="1" type="change" source="database" info="restart" database_id="13" sid="0xE7C0751C9F7F6C4D9423096BBCC7FB69"><qn:Message>edd3e2dd-11ed-4d92-a0f4-5c674a90aecf;8b2095663cc6a9c297120e4c94d488555e97e54d</qn:Message></qn:QueryNotification>' because of the following error in service broker: 'The conversation handle "822C7891-736E-DC11-836B-005056C00008" is not found.'
I am trying to insert a row into a table using a stored procedure and Iget the following error if I try this from QA:INSERT failed because the following SET options have incorrectsettings: 'ANSI_NULLS., QUOTED_IDENTIFIER'.If I try to run this from Microsoft Access, I get a slightly differenterror:INSERT failed because the following SET options have incorrectsettings: 'ANSI_NULLS., QUOTED_IDENTIFIER, ARITHABORT'.This is what I'm trying to run in QA:declare @P1 intset @P1=NULLexec stpAddNewDistributionMaster 142, 2, 'INTRODUCTION OF FILTERASSEMBLY', 0, 1, @P1 outputselect @P1===========================Here are the relevant definitions:TABLE:CREATE TABLE [dbo].[tblDistributionMaster] ([fldDistributionID] [int] IDENTITY (1, 1) NOT NULL ,[fldDocumentID] [int] NULL ,[fldDocumentType] [int] NULL ,[fldDocumentTitle] [varchar] (255) COLLATESQL_Latin1_General_CP1_CI_AS NULL ,[fldDocumentSiteID] [int] NULL ,[fldActive] [bit] NOT NULL) ON [PRIMARY]GOALTER TABLE [dbo].[tblDistributionMaster] WITH NOCHECK ADDCONSTRAINT [DF__Temporary__fldDo__2739D489] DEFAULT (0) FOR[fldDocumentID],CONSTRAINT [DF__Temporary__fldDo__282DF8C2] DEFAULT (0) FOR[fldDocumentType],CONSTRAINT [DF__Temporary__fldDo__29221CFB] DEFAULT (0) FOR[fldDocumentSiteID],CONSTRAINT [DF__Temporary__fldAc__2A164134] DEFAULT (1) FOR[fldActive],CONSTRAINT [aaaaatblDistributionMaster_PK] PRIMARY KEY NONCLUSTERED([fldDistributionID]) WITH FILLFACTOR = 90 ON [PRIMARY]GOCREATE INDEX [fldDistributionID] ON[dbo].[tblDistributionMaster]([fldDistributionID]) WITH FILLFACTOR =90 ON [PRIMARY]GOCREATE INDEX [fldDocumentID] ON[dbo].[tblDistributionMaster]([fldDocumentID]) WITH FILLFACTOR = 90 ON[PRIMARY]GOCREATE INDEX [fldDocumentSiteID] ON[dbo].[tblDistributionMaster]([fldDocumentSiteID]) WITH FILLFACTOR =90 ON [PRIMARY]GOCREATE INDEX [fldDocumentType] ON[dbo].[tblDistributionMaster]([fldDocumentType]) WITH FILLFACTOR = 90ON [PRIMARY]GO/****** The index created by the following statement is for internaluse only. ******//****** It is not a real index but exists as statistics only. ******/if (@@microsoftversion > 0x07000000 )EXEC ('CREATE STATISTICS [hind_37575172_1A_3A] ON[dbo].[tblDistributionMaster] ([fldDistributionID], [fldDocumentType])')GO/****** The index created by the following statement is for internaluse only. ******//****** It is not a real index but exists as statistics only. ******/if (@@microsoftversion > 0x07000000 )EXEC ('CREATE STATISTICS [hind_37575172_3A_1A] ON[dbo].[tblDistributionMaster] ([fldDocumentType], [fldDistributionID])')GO/****** The index created by the following statement is for internaluse only. ******//****** It is not a real index but exists as statistics only. ******/if (@@microsoftversion > 0x07000000 )EXEC ('CREATE STATISTICS [hind_37575172_2A_1A] ON[dbo].[tblDistributionMaster] ([fldDocumentID], [fldDistributionID]) ')GO/****** The index created by the following statement is for internaluse only. ******//****** It is not a real index but exists as statistics only. ******/if (@@microsoftversion > 0x07000000 )EXEC ('CREATE STATISTICS [hind_37575172_3A_2A] ON[dbo].[tblDistributionMaster] ([fldDocumentType], [fldDocumentID]) ')GO/****** The index created by the following statement is for internaluse only. ******//****** It is not a real index but exists as statistics only. ******/if (@@microsoftversion > 0x07000000 )EXEC ('CREATE STATISTICS [hind_37575172_2A_3A] ON[dbo].[tblDistributionMaster] ([fldDocumentID], [fldDocumentType]) ')GO/****** The index created by the following statement is for internaluse only. ******//****** It is not a real index but exists as statistics only. ******/if (@@microsoftversion > 0x07000000 )EXEC ('CREATE STATISTICS [hind_37575172_1A_2A_3A] ON[dbo].[tblDistributionMaster] ([fldDistributionID], [fldDocumentID],[fldDocumentType]) ')GOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGOCREATE TRIGGER "tblDistributionMaster_UTrig" ONdbo.tblDistributionMaster FOR UPDATE ASSET NOCOUNT ON/* * PREVENT UPDATES IF DEPENDENT RECORDS IN 'tblJobs' */IF UPDATE(fldDistributionID)BEGINIF (SELECT COUNT(*) FROM deleted, tblJobs WHERE(deleted.fldDistributionID = tblJobs.fldDistributionID)) > 0BEGINRAISERROR 44446 'The record can''t be deleted orchanged. Since related records exist in table ''tblJobs'', referentialintegrity rules would be violated.'ROLLBACK TRANSACTIONENDENDGOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGOCREATE TRIGGER "tblDistributionMaster_DTrig" ONdbo.tblDistributionMaster FOR DELETE ASSET NOCOUNT ON/* * CASCADE DELETES TO 'tblJobs' */DELETE tblJobs FROM deleted, tblJobs WHERE deleted.fldDistributionID =tblJobs.fldDistributionIDGOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGO===========================SPROC:CREATE PROCEDURE stpAddNewDistributionMaster@DocumentID int,@DocumentType int,@Title varchar(255),@SiteID int,@Active bit,@DistributionID int OUTPUTASINSERT INTO tblDistributionMaster(fldDocumentID,fldDocumentType,fldDocumentTitle,fldActive,fldDocumentSiteID)VALUES(@DocumentID,@DocumentType,@Title,@Active,@SiteID)SET @DistributionID = IDENT_CURRENT('tblDistributionMaster')GO==============================Thanks in advanceEdward
I am getting the following error message: [-E-19:42] Message: SELECT failed because the following SET options have incorrect settings: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or query notifications and/or xml data type methods.
I am using the following set options before the sp is created:
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET NUMERIC_ROUNDABORT OFF
I looked on the internet and most of solutions were related to indexed views or computed columns. But I am neither using any indexed views nor computed columns. Also the same sp is working fine in one environment but giving the above error in another SQL server. I am using SQL Server 2005 with SP1.
Please help me in finding the cause & the resolution for this issue.
When I want to delete a data from a table that this tabl has a triggerand this trigger reached another tables to delete the data in cursor Ihave this messeage:DELETE failed because the following SET options have incorrectsettings: 'QUOTED_IDENTIFIER'.My trigger :CREATE TRIGGER [TOPBASICIKISSILME] ON [dbo].[TBLDEPOBKTOPBASICIKIS]FOR DELETEASBEGINDECLARE @rows_affected int, @inc bigint , @dblid bigint ,@DEPOBKINCbigintSELECT @rows_affected = @@ROWCOUNTIF @rows_affected = 0RETURN -- No rows changed, exit triggerBEGINDECLARE Miktar CURSOR FORSELECT deleted.DBLID,deleted.TOPBASICIKISINC , deleted.DEPOBKINCFROM deletedOPEN MiktarFETCH NEXT FROM Miktar INTO @dblid,@inc,@DEPOBKINCWHILE @@fetch_status = 0BEGINSET QUOTED_IDENTIFIER ONDELETE FROM TBLDEPOBKMIKTAR WHERE DEPOBKINC=@DEPOBKINCAND OWNERINC = @inc AND ISLEMID=2 AND HAREKETID=19 AND BIRIM=1SET QUOTED_IDENTIFIER OFFPRINT @DEPOBKINCFETCH NEXT FROM Miktar INTO @dblid,@inc,@DEPOBKINCENDCLOSE MiktarDEALLOCATE MiktarENDEND
I am currently running the following query from Query Analyser, I am connected to Server_A and inserting records into Server_B.Database_B.dbo.MyTable from Server_A .Database_A.dbo.TableRef
Insert into Server_B.Database_B.dbo.MyTable(Field1,Field2,Field3) Select Field1_Ref,
Field2_Ref, Field3_Ref from Server_A .Database_A.dbo.TableRef
However Server_B.Database_B.dbo.MyTable is referenced within an Indexed View and whenever I run this query I get the following error:
Msg 1934, Level 16, State 1, Line 1
INSERT failed because the following SET options have incorrect settings: 'ARITHABORT'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or query notifications and/or xml data type methods.
I have tried setting ARITHABORT to ON & OFF within the Query and within the database properties but still recieve the same error.
Does anyone have any ideas on why this would not work?
Hi,I am getting the following error when I run a stored procedure inwhich I am inserting/deleting data from a view that selects from aremote table.INSERT failed because the following SET options have incorrectsettings: 'ARITHABORT'The first statement in the stored procedure is 'set arithabort on'. Ialso ran 'set arithabort on' before creating the view.I read many articles ragarding the setting of arithabort. I set it forthe connection, for the database (alter database) and above all forthe server (sp_configure) but could not get around the above error.However, when I had made the setting using "sp_configure 'useroptions', 64" I was able to run the stored procedure successfully acouple of times. But, later when I had resest 'user options' to 0 andthen back to 64 just to reproduce the earlier error and confirm thatthe error does not come with the 'user options' to 64 setting I wasgetting the same error.Is there any way by which I can overcome the problem?Thanks,Iqbal
I am contemplating creating a job to execute every 5 mins which will update index statisics if they are more than say 8% out. I would like to know what thoughts people have on this? i.e. pros and cons.
I like forward to what you have to say.
I have auto stats on. Our stats are often more than 10% out. At what level do you reckon the query plan might be effected by out of data stats?
It seems to me there are many ways to update statistics for a table. i.e. "sp_updatestats", "sp_recompile", "dbcc updateusage"
Can somebody tell me the difference between those commands and what's the best way for updating your statistics? Does reindexing update the statistics?
To update statistics for entire DB i have taken the script from under given link.But need to know the 1 : what is sample percent on update statistics 2 : will it be applicable for 2005 ?
script taken from : http://weblogs.sqlteam.com/tarad/archive/2006/08/14/11194.aspx
Hi All, I update statistics for three tables every day 2:00 AM and in the job we call one stored procedure and, in that stored procedure only three statements are writtern for update statistics Like: Exec('update statistics TBL1 with fullscan') Exec('update statistics TBL2 with fullscan') Exec('update statistics TBL3 with fullscan') And this job was working fine since many months but last two days its getting fail and it gives the error messages like : could not continue scan with NOLOCK due to data movement So could you help me what is the solution for this
I would like to know when we upgrade SQL Server 2000 database to SQL Server 2005 is it required to update the statistics even if we rebuild all the indexes or create new indexes?
I am planning to change our current UPDATE STATISTICS strategy, which is auto stats ON. Our database is terrabytes sizes and some tables with millions of rows with over 200 indexes in one table. Some of these indexes are not really used. Most of the tables are very small.
Droping and creating new indexes are quite often used in our environment. So static script may not help.
How can I identify most frequently used indexes in a table?
With the Microsft recommended auto stats ON, what are the best other practices I can include to improve the effeciency?
Any help would be apprecited. It would be realy great if any of you can share some scripts to generates dynamic scripts.
On a SQL 7 sp 2 server, I have a database with about about 77,000 records, with automatic update statistics on inserting 1000 records took 43 minutes. With automatic update off, it took 23 minutes to insert the same 1000 records. On the same machine, I inserted 1000 records into 2 other databases with the same database structure and automatic update statistics on. On the second database, there are about 174000 records and it took 35 minutes to insert 1000 records. On the third database, there are about 93000 records and it took 19 minutes to insert 1000 records.
I have a query that retrieves a single record from searching on two tables. The statement goes like this... select sum(amount) from Table1 A union Table2 B on a.id = b.id where date < ### and date > #### and account = ###
As people are running a particular report, this statement is executed time and time again to pull up the numbers necesarry for the report. When the report gets slow, I can speed it up by updating the statistics. My concern is that I'm having to update the statistcs every hour; otherwise, the query becomes slow. I have noticed that users are inserting data while users are running the report on one of the tables listed above. I'm sure that's making it become more fragmented and ultimately slowing down the query. Do you have any suggestion on how I can make the union of these two tables faster? Or is there anything I could do to speed the query besides creating clusted indexes? Any help would be appreciated....thank you
I am maintaining a large table with millions of rows that has two non clustered indexes and data changing frequently, I need to keep the indexes fresh. Update Statistics runs much quicker than Reindex. What is the appropriate situation for each and why? Thanks in advance.
We are upgrading from sql 7 to 2000.During the upgrade process do we have to do a reindexing of all tables or will update statistics take care of that.
Or do we have to do both? What is the difference between reindexing and update statistics.
I have recently defragged my SQL server using INDEXDEFRAG. Can somebody please tell me how to update the statistics on all the tables? Thanks in advance.
Below is the script that I executed to defrag all the tables in my database if anyone needs this.
/*Perform a 'USE <database name>' to select the database in which to run the script.*/ -- Declare variables SET NOCOUNT ON DECLARE @tablename VARCHAR (128) DECLARE @execstr VARCHAR (255) DECLARE @objectid INT DECLARE @indexid INT DECLARE @frag DECIMAL DECLARE @maxfrag DECIMAL
-- Decide on the maximum fragmentation to allow SELECT @maxfrag = 20.0
-- Declare cursor DECLARE tables CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'
-- Loop through all the tables in the database FETCH NEXT FROM tables INTO @tablename
WHILE @@FETCH_STATUS = 0 BEGIN -- Do the showcontig of all indexes of the table INSERT INTO #fraglist EXEC ('DBCC SHOWCONTIG (''' + @tablename + ''') WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS') FETCH NEXT FROM tables INTO @tablename END
-- Close and deallocate the cursor CLOSE tables DEALLOCATE tables
-- Declare cursor for list of indexes to be defragged DECLARE indexes CURSOR FOR SELECT ObjectName, ObjectId, IndexId, LogicalFrag FROM #fraglist WHERE LogicalFrag >= @maxfrag AND INDEXPROPERTY (ObjectId, IndexName, 'IndexDepth') > 0
-- Open the cursor OPEN indexes
-- loop through the indexes FETCH NEXT FROM indexes INTO @tablename, @objectid, @indexid, @frag
I am looking to run UPDATE STATISTICS for the first time, don't ask why it wasn't done prior please :(, on a set of large tables in our 346gb database whcih has been being populated with transactional data for the past 4 years. The tables contain 1.2, 35, 64, and 92 million rows. I have used the STAT_DATE function to determine that none of these tables have ever had update statistics run for them.
My question is how should I go about this process and what options should I be selecting when issuing the command? I assume that I must first run with the FULLSCAN paramater in order to initially generate statistics for the table then would assume that following this initial population I could run without any paramaters nightly against the tables in the database to keep statistics up to date. Any guideance you all could provide to a newb would be greatly appreciated.
I'm using SQL 7, there is a setting on DB properties called "Auto update statistics", what kind of statistics does this refers to and how can this stats be accessed?
Hi. I have automatic statistic update turned on for all my databases. Isthis an overhead I can do without? Could I update them overnight when thedatabase is hardly in use?Thanks--Chris Weston
I am using the Maintencance Plan wizard, but it only allows me to either select the "reorganize data and indexes" option or the "update statistics" option (in the Optimizations tab). I can't select both of them. What is the reason for this?
We are using SQL Server 2005. The auto update statistics and auto create statistics for a database is set to ON. This database has a very heavy work load. When I checked the individual statitics , still the last updated statistics is in a old date value (few months ago).
Is it necessary to manually update the statistics for the same database? Or can we rely upon "auto update statistics" itself ?
Usually in what frequency the manual UPDATE STATISTICS should be run on production system which has heavy transactions ?
Dear Sql Server experts:First off, I am no sql server expert :)A few months ago I put a database into a production environment.Recently, It was brought to my attention that a particular query thatexecuted quite quickly in our dev environment was painfully slow inproduction. I analyzed the the plan on the production server (itlooked good), and then tried quite a few tips that I'd gleaned fromreading newsgroups. Nothing worked. Then on a whim I performed anUPDATE STATISTICS on a few of the tables that were being queried. Thequery immediately went from executing in 61 seconds to under 1 second.I checked to make sure that statistics were being "auto updated" andthey were.Why did I need to run UPDATE STATISTICS? Will I need to again?A little more background info:The database started empty, and has grown quite rapidly in the lastfew months. One particular table grows at a rate of about 300,000records per month. I get fast query times due to a few well placedindexes.A quick question:If I add an index, do statistics get automatically updated for thisnew index immediately?Thanks in advance for any help,Felix