x

Does the db compatability level have any effect on the PAGE_VERIFY db option?

I have several databases where PAGE_VERIFY is set to NONE and I recently learned that this is a less than ideal setting. From what I've read, the best practice (and default value) is to use CHECKSUM or, failing that, TORN_PAGE_DETECTION; apparently there's some overhead associated with those settings, but it's usually not enough to outweigh the benefits (please correct me if I've misunderstood the basics).

I also read that the PAGE_VERIFY option is new to SQL 2005 and that it uses a different mechanism than the old TORN_PAGE_DETECTION db option in SQL 2000 (and prior). When I look at our databases that have PAGE_VERIFY = NONE, they were all upgraded from SQL 2000 and they all have a compatibility level of 80. However, we also have some databases that I know were upgraded from SQL 2000 that use compatibilily level 90 and do not have PAGE_VERIFY set to NONE. I know that using compatability mode 80 is not exactly like running SQL 2000, but I couldn't determine if this is one of the things it affects, or not.

So my question essentially boils down to this: do I need to change the compatibility mode to 90 when I change the PAGE_VERIFY db option? Are there any "gotchas" or other factors I should consider when changing this option for an existing db (as opposed to when creating a new db)?

more ▼

asked Oct 21 '09 at 07:30 PM in Default

Matt gravatar image

Matt
43 1 1 2

(comments are locked)
10|1200 characters needed characters left

1 answer: sort voted first

Hi Matt,

the compatibility level is really misunderstood by a lot of people. as you've said, using compatibility level 80 doesn't mean you're running the database in sql server 2000. it only says that the T-SQL commands that are new to the version your running (2005 or 2008) should be ignored. this is specially good if you have any user object named with a system name.. for instance, you can have a table called WITH in the database and your queries will work if your using compatibility level 80, in sql 2005 and 2008, WITH is a reserved word...

said that.. the PAGE_VERIFY option can be set to any of the possible values, even if the database is running in compatibility level 80. 'cause the internal engine will behavior just like if you were using a database level 90 or 100. the only difference is in T-SQL interpretation..

when you upgrade your database from SQL2000 to 2005/2008, SQL Server does not change the page_verify option. you should change this manually, that's the reason you have so many databases running without any page_verify (which is really not a good thing)

more ▼

answered Oct 23 '09 at 03:34 PM

Felipe Ferreira gravatar image

Felipe Ferreira
306 2

(comments are locked)
10|1200 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

New code box

There's a new way to format code on the site - the red speech bubble logo will automatically format T-SQL for you. The original code box is still there for XML, etc. More details here.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

SQL Server Central

Need long-form SQL discussion? SQLserverCentral.com is the place.

Topics:

x1933
x8

asked: Oct 21 '09 at 07:30 PM

Seen: 2073 times

Last Updated: Oct 22 '09 at 06:13 AM