March 31, 2010 at 10:52 am
About to migration production environments, doing some preparation on the reporting side.
If I have tables in REALDATABASE
REALDATABASE.dbo.customers, with real data in it
REALDATABASE.dbo.sales, with real data in it
And some views in REPORTINGDATABASE (same server)
REPORTINGDATABASE.dbo.report1, which is a complex view pointing to customers and sales
REPORTINGDATABASE.dbo.report2, which is a complex view pointing to customers and sales
(...there are many of these)
Can I add new views:
REPORTINGDATABASE.dbo.customers as "SELECT * FROM REALDATABASE.dbo.customers"
REPORTINGDATABASE.dbo.sales as "SELECT * FROM REALDATABASE.dbo.sales"
(I won't actually use SELECT *, I will list the fields!)
...and repoint my complex views to these simple views.
...then later, if I need to rename REALDATABASE, I just have to modify these new "simple" views, and all the "complex" views (report1, report2, etc) will update.
Are there performance/design implications?
Many Thanks
Andrew
March 31, 2010 at 12:10 pm
No performance issue. This is right approch. You can keep the linked server name same even if I need to rename REALDATABASE. You do not need to change the simple views also.:-)
March 31, 2010 at 2:18 pm
Using views is one approach - another approach is to use synonyms. For example:
-- First, create a schema for your synonyms. Not necessary, but organizes them for you
CREATE SCHEMA RealDB AUTHORIZATION dbo;
GO
-- Now, create your synonyms
CREATE SYNONYM RealDB.Customers FOR REALDATABASE.dbo.Customers;
CREATE SYNONYM RealDB.Sales FOR REALDATABASE.dbo.Sales;
...
Use the synonyms in your complex views
Now, if you need to move the database - rename it or whatever, just drop the synonym and recreate it.
DROP SYNONYM RealDB.Customers;
CREATE SYNONYM RealDB.Customers FOR NewREALDB.dbo.Customers;
DROP SYNONYM RealDB.Sales;
CREATE SYNONYM RealDB.Sales FOR NewREALDB.dbo.Sales;
...
You can also create synonyms for linked server objects, as in:
CREATE SYNONYM RealDB.Customers_Remote FOR RemoteServer.REALDB.dbo.Customers;
Again, move the linked server - change the db, etc... you just drop and recreate the synonyms.
Jeffrey Williams
Problems are opportunities brilliantly disguised as insurmountable obstacles.
How to post questions to get better answers faster
Managing Transaction Logs
April 1, 2010 at 10:37 am
Andrew-443839 (3/31/2010)
...then later, if I need to rename REALDATABASE
Just out of curiosity... any particular reason you foresee the need of renaming REALDATABASE in the future?
_____________________________________
Pablo (Paul) Berzukov
Author of Understanding Database Administration available at Amazon and other bookstores.
Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.April 1, 2010 at 10:55 am
PaulB-TheOneAndOnly (4/1/2010)
Andrew-443839 (3/31/2010)
...then later, if I need to rename REALDATABASEJust out of curiosity... any particular reason you foresee the need of renaming REALDATABASE in the future?
It's an ERP database going through a lengthy (all weekend) application upgrade process, which will be replaced with a (very similar) database with a different name.
Some of the reporting is based on some complex custom views sitting in another (empty) database on the same server. I want to simplify the reporting "switchover" as much as possible.
I'll probably go ahead with the "intermediate" views solution, thanks to everyone for the input.
Andrew
April 2, 2010 at 5:28 am
Jeffrey Williams-493691 (3/31/2010)
Using views is one approach - another approach is to use synonyms.
I would tend to prefer the synonym approach - assuming the database in question is SQL Server 2005 or above (regardless of compatibility level).
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
April 2, 2010 at 8:36 am
Paul White NZ (4/2/2010)
Jeffrey Williams-493691 (3/31/2010)
Using views is one approach - another approach is to use synonyms.I would tend to prefer the synonym approach - assuming the database in question is SQL Server 2005 or above (regardless of compatibility level).
I agree with you - that's why I suggested it. But, I am curious why you prefer this approach over using views.
Jeffrey Williams
Problems are opportunities brilliantly disguised as insurmountable obstacles.
How to post questions to get better answers faster
Managing Transaction Logs
April 2, 2010 at 9:10 am
Jeffrey Williams-493691 (4/2/2010)
I am curious why you prefer this approach over using views.
Synonyms were created to meet exactly the sort of need presented here.
They are easy to define, and avoid ugly SELECT * constructions.
They also don't go wrong if the definition of the referenced object changes - no need to refresh views or schema-bind (which isn't possible anyway outside the same database).
To my mind, views were always a workaround solution - synonyms seem...well...nicer. π
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
April 2, 2010 at 9:13 am
Paul White NZ (4/2/2010)
Jeffrey Williams-493691 (4/2/2010)
I am curious why you prefer this approach over using views.Synonyms were created to meet exactly the sort of need presented here.
They are easy to define, and avoid ugly SELECT * constructions.
They also don't go wrong if the definition of the referenced object changes - no need to refresh views or schema-bind (which isn't possible anyway outside the same database).
To my mind, views were always a workaround solution - synonyms seem...well...nicer. π
Exactly the same reasons I prefer them also. Thanks.
Jeffrey Williams
Problems are opportunities brilliantly disguised as insurmountable obstacles.
How to post questions to get better answers faster
Managing Transaction Logs
April 2, 2010 at 9:27 am
Jeffrey Williams-493691 (4/2/2010)
Exactly the same reasons I prefer them also. Thanks.
Heh, so I passed? π π
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
April 2, 2010 at 10:50 am
Paul White NZ (4/2/2010)
Jeffrey Williams-493691 (4/2/2010)
Exactly the same reasons I prefer them also. Thanks.Heh, so I passed? π π
No - more like I passed. Just confirms my own reasons for using synonyms is all π
Jeffrey Williams
Problems are opportunities brilliantly disguised as insurmountable obstacles.
How to post questions to get better answers faster
Managing Transaction Logs
April 2, 2010 at 4:04 pm
Hey, I like sysnonyms, one of the things I always wanted SQL Server to take from ORACLE, and now it's done.
Regards
Richellère
July 5, 2010 at 10:13 am
As a (rather late) post script to the thread, in the end we did use synonyms, with a successful outcome. π
Thanks again.
Andrew
July 6, 2010 at 5:39 am
Andrew-443839 (7/5/2010)
As a (rather late) post script to the thread, in the end we did use synonyms, with a successful outcome. πThanks again.
Andrew
Good to hear, thanks for the update π
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
Viewing 14 posts - 1 through 13 (of 13 total)
You must be logged in to reply to this topic. Login to reply