Showing posts with label production. Show all posts
Showing posts with label production. Show all posts

Friday, March 30, 2012

ROLAP and partitioning questions

I have done all my dev work on a new AS database and now I need to start tuning processing/partitioning for deployment in production. The database needs to be able to drill down to leaf level and so I have implemented a fact dimension to do so. Testing with this dimension as MOLAP yields a 2.8 GB for 20 days of data partitioned by day. With the same partition scheme, if I change the dimension to ROLAP, the database goes down to 124 MB.

With MOLAP, after the cube is processed, it opens nearly immediately in browse or in Proclarity by opening the cube. Good performance, but too big. With ROLAP, it has been "Loading..." for over an hour. Good size, but terrible performance. Is this normal behavior? My guess is that since it is trying to load the default row/column view, it thinks it has to sum all the ROLAP leaves? I'll have to try some MDX against it for comparison.

Should it take just as long to process a db with a ROLAP dim as opposed to a MOLAP dim? The fact dimension itself processes instantaneously, but when processing the database it spends quite a bit of time in the ROLAP fact dimension. How can I see where all the time is being spent? Both seem to take ~1.5 hours to build.

With partitioning, is it best practice to keep the solution with a single partition and create the partition scheme programatically against the server instance?

I have a case where I need to delete and add an arbitrary number of daily partitions each day depending on what data comes in. I am looking at using ASCMD to do this as our ETL is third party. I can see how to delete and create the objects, but how can I tell what items need to be processed after the partition work is done. Is there any easy way to figure out the list/order of items that needs to be processed?

Thanks,

I will always recommend MOLAP berfore ROLAP. Have you 100 percent aggregation level on your partions? If so you should always start with a lower percentage for aggregations, like 20-30 percent. You can also get large cubes with many dimensions, like 20-30 or more, in one cube.

ROLAP builds summary tables i the relational database and it is always slower than MOLAP.

Use SQL Server profiler to study cube processing.

Regards

Thomas Ivarsson

|||

If your cube is partitioned by day, you need to run a distinct query on day and iter through the partitions to be processed.

MOLAP cubes are larger but if they are partitioned and you have usage based optimization implemented, you will get good performance. Also, go ahead and prune any unnecessary attributes from the dimensions, i.e. ETL load date, etc. This will reduce the size of the dimensions and the cube. A customer or a product dimension would normally have a lot of attributes that you can prune, i.e. BOM info, address, etc.

|||

Agreed. That is why I was using MOLAP. With the fact dimension as MOLAP, my partitions were only at 13% aggregation and my db size is still 2.8 GB.

If I move the fact dimension to ROLAP the db size goes down to 153 MB. I do seem to be having better luck with performance now though. It appears that it is best to redesign your aggregations and reprocess when you change a dimension's storage model. I have changed my aggregations, which are now at 24%. The browse feature in VS is still impossibly slow to come up, but Proclarity and SQL Server Management Studio now appear to be playing nice. It looked like before all 3 were taking > 1 hours to load the metadata.

The thing I still don't understand is when I process the ROLAP dimension, it runs nearly instantaneously as expected. However, when I process the database it still takes 75 minutes to process the ROLAP dimension as part of the cube? Does that make sense? I guess I was thinking using ROLAP would speed the cube build up as well as save on storage.

Keehan

|||That is why I was using MOLAP. When I realized how much space the fact dimension is consuming, I am forced to shift. I have already trimmed all the unnecessary attributes. The fact dimension now only contains items that users may need to drill down to like item_number, equipment_id, etc.|||

I have not used ROLAP in SQL2005 apart from with Microstrategy.

I have a large cube that is 6gb and performance is pretty good if it is designed correctly and aggregated. The SQL database is 50gb.

If you want performance, then MOLAP is the way to go. Partitioning does help with processing multiple partitions and query performance.

You also do not specify how many days data are you planning to keep. It should really be a sliding window. The expectation of the end user to be able to drill down to the leaf level comes from using SQL query tools. I have a similar battle. You should set the expectation that they will only be allowed to drill down to leaf level for the last 30 to 90 days. Beyond that, it becomes unmanageable. The first thing to ask the end users is what is the use case and what decisions are they going to base on the transactional data. A typical scenario in the decision making process is multi-steps:

An analytics view highlights outliers|||

The last line seems to be the key, we have a similar cube which use to grow at about 200,000 records a day. My Data modeller and me

decided to keep the transactions out of the cube, this meant our fact size grows 7100 records a day, peformance has hugely improved, downside is that we

have to drilltrough into the transaction system now, if you need mass datastore contact EMC in Hopkinton,MA !!

thanks

Adi

ROLAP and partitioning questions

I have done all my dev work on a new AS database and now I need to start tuning processing/partitioning for deployment in production. The database needs to be able to drill down to leaf level and so I have implemented a fact dimension to do so. Testing with this dimension as MOLAP yields a 2.8 GB for 20 days of data partitioned by day. With the same partition scheme, if I change the dimension to ROLAP, the database goes down to 124 MB.

With MOLAP, after the cube is processed, it opens nearly immediately in browse or in Proclarity by opening the cube. Good performance, but too big. With ROLAP, it has been "Loading..." for over an hour. Good size, but terrible performance. Is this normal behavior? My guess is that since it is trying to load the default row/column view, it thinks it has to sum all the ROLAP leaves? I'll have to try some MDX against it for comparison.

Should it take just as long to process a db with a ROLAP dim as opposed to a MOLAP dim? The fact dimension itself processes instantaneously, but when processing the database it spends quite a bit of time in the ROLAP fact dimension. How can I see where all the time is being spent? Both seem to take ~1.5 hours to build.

With partitioning, is it best practice to keep the solution with a single partition and create the partition scheme programatically against the server instance?

I have a case where I need to delete and add an arbitrary number of daily partitions each day depending on what data comes in. I am looking at using ASCMD to do this as our ETL is third party. I can see how to delete and create the objects, but how can I tell what items need to be processed after the partition work is done. Is there any easy way to figure out the list/order of items that needs to be processed?

Thanks,

I will always recommend MOLAP berfore ROLAP. Have you 100 percent aggregation level on your partions? If so you should always start with a lower percentage for aggregations, like 20-30 percent. You can also get large cubes with many dimensions, like 20-30 or more, in one cube.

ROLAP builds summary tables i the relational database and it is always slower than MOLAP.

Use SQL Server profiler to study cube processing.

Regards

Thomas Ivarsson

|||

If your cube is partitioned by day, you need to run a distinct query on day and iter through the partitions to be processed.

MOLAP cubes are larger but if they are partitioned and you have usage based optimization implemented, you will get good performance. Also, go ahead and prune any unnecessary attributes from the dimensions, i.e. ETL load date, etc. This will reduce the size of the dimensions and the cube. A customer or a product dimension would normally have a lot of attributes that you can prune, i.e. BOM info, address, etc.

|||

Agreed. That is why I was using MOLAP. With the fact dimension as MOLAP, my partitions were only at 13% aggregation and my db size is still 2.8 GB.

If I move the fact dimension to ROLAP the db size goes down to 153 MB. I do seem to be having better luck with performance now though. It appears that it is best to redesign your aggregations and reprocess when you change a dimension's storage model. I have changed my aggregations, which are now at 24%. The browse feature in VS is still impossibly slow to come up, but Proclarity and SQL Server Management Studio now appear to be playing nice. It looked like before all 3 were taking > 1 hours to load the metadata.

The thing I still don't understand is when I process the ROLAP dimension, it runs nearly instantaneously as expected. However, when I process the database it still takes 75 minutes to process the ROLAP dimension as part of the cube? Does that make sense? I guess I was thinking using ROLAP would speed the cube build up as well as save on storage.

Keehan

|||That is why I was using MOLAP. When I realized how much space the fact dimension is consuming, I am forced to shift. I have already trimmed all the unnecessary attributes. The fact dimension now only contains items that users may need to drill down to like item_number, equipment_id, etc.|||

I have not used ROLAP in SQL2005 apart from with Microstrategy.

I have a large cube that is 6gb and performance is pretty good if it is designed correctly and aggregated. The SQL database is 50gb.

If you want performance, then MOLAP is the way to go. Partitioning does help with processing multiple partitions and query performance.

You also do not specify how many days data are you planning to keep. It should really be a sliding window. The expectation of the end user to be able to drill down to the leaf level comes from using SQL query tools. I have a similar battle. You should set the expectation that they will only be allowed to drill down to leaf level for the last 30 to 90 days. Beyond that, it becomes unmanageable. The first thing to ask the end users is what is the use case and what decisions are they going to base on the transactional data. A typical scenario in the decision making process is multi-steps:

An analytics view highlights outliers|||

The last line seems to be the key, we have a similar cube which use to grow at about 200,000 records a day. My Data modeller and me

decided to keep the transactions out of the cube, this meant our fact size grows 7100 records a day, peformance has hugely improved, downside is that we

have to drilltrough into the transaction system now, if you need mass datastore contact EMC in Hopkinton,MA !!

thanks

Adi

Monday, March 26, 2012

right way to perfromance tune?

I captured a trace from a production box. I've mad some changes with
Indexes, Stats, etc. so now I want to replay. Im mostly interested in
lowering Duration and CPU at this point. If I replay this trace on a box
thats not as powerful as Production, is this even an accurate assessment? Is
there a better way?
SQL2K SP3
TIA, ChrisR
On Mon, 15 Nov 2004 15:07:08 -0800, "ChrisR" <bla@.noemail.com> wrote:
>I captured a trace from a production box. I've mad some changes with
>Indexes, Stats, etc. so now I want to replay. Im mostly interested in
>lowering Duration and CPU at this point. If I replay this trace on a box
>thats not as powerful as Production, is this even an accurate assessment? Is
>there a better way?
Even on a very different box, AS LONG AS THE DATA IS THE SAME, eg,
full production size, then at least the logical reads should be
comparable. That's so the statistics and execution plans are the
same, not to mention getting the same results!
CPU and duration will not be comparable.
Joshua Stern
|||On Mon, 15 Nov 2004 18:58:23 -0800, jxstern wrote:

>On Mon, 15 Nov 2004 15:07:08 -0800, "ChrisR" <bla@.noemail.com> wrote:
>Even on a very different box, AS LONG AS THE DATA IS THE SAME, eg,
>full production size, then at least the logical reads should be
>comparable. That's so the statistics and execution plans are the
>same, not to mention getting the same results!
>CPU and duration will not be comparable.
>Joshua Stern
Hi Joshua,
I don't think that this is correct. Completely different execution plans
can be chosen if there are more or less processors available. AFAIK, the
amount of available memory will also influence the choice.
Best, Hugo
(Remove _NO_ and _SPAM_ to get my e-mail address)
|||On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
<hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
>I don't think that this is correct. Completely different execution plans
>can be chosen if there are more or less processors available. AFAIK, the
>amount of available memory will also influence the choice.
I didn't know that, and would like to hear more, but even so I'd bet
you could depend on logical read counts to give you a pretty good
indication of whether your database structure and queries are lined up
well, plus or minus, oh, maybe 20%.
I wonder if a parallel algorithm might do *more* logical reads, hmm.
J.
|||"JXStern" <JXSternChangeX2R@.gte.net> wrote in message
news:pc5kp05cqkv13jj688b3pnjjvvid6vg9vk@.4ax.com...
> On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
> <hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
> I didn't know that, and would like to hear more, but even so I'd bet
> you could depend on logical read counts to give you a pretty good
> indication of whether your database structure and queries are lined up
> well, plus or minus, oh, maybe 20%.
>
I doubt that. Imagine your prod server has 2 gig of RAM and your test
server has 512K. The amount of memory available for caching will be
radically different. In that case your logical reads may be far lower and
your physical reads would be far higher.

> I wonder if a parallel algorithm might do *more* logical reads, hmm.
> J.
>
|||On Tue, 16 Nov 2004 07:03:31 -0800, JXStern wrote:

>On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
><hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
>I didn't know that, and would like to hear more, but even so I'd bet
>you could depend on logical read counts to give you a pretty good
>indication of whether your database structure and queries are lined up
>well, plus or minus, oh, maybe 20%.
Hi J,
I wouldn't rely on it. I don't know the details (where's Kalen when you
need her? <g>), but I can easily imagine that the optimizer would choose
an execution plan using hash joins and sorting on a high-memory machine,
but prefer looping on a low-memory machine. Operations like sorting and
hashing tend to be relatively cheap if it's all in memory, but very
expensive if the amount of data is more than fits in memory.
Best, Hugo
(Remove _NO_ and _SPAM_ to get my e-mail address)
|||On Tue, 16 Nov 2004 15:21:33 GMT, "Greg D. Moore \(Strider\)"
<mooregr_deleteth1s@.greenms.com> wrote:
>I doubt that. Imagine your prod server has 2 gig of RAM and your test
>server has 512K. The amount of memory available for caching will be
>radically different. In that case your logical reads may be far lower and
>your physical reads would be far higher.
For a given execution plan (and server and data, etc), aren't the
logical reads constant no matter what the physical reads?
J.
|||jxstern wrote:
> On Tue, 16 Nov 2004 15:21:33 GMT, "Greg D. Moore \(Strider\)"
> <mooregr_deleteth1s@.greenms.com> wrote:
> For a given execution plan (and server and data, etc), aren't the
> logical reads constant no matter what the physical reads?
> J.
If the same query plan is used (you can't compare the count of a hash
with a loop join), and the databases have the same free space (caused by
updates and deletes), the same index depth and the same number of pages,
then the logical read count should be the same. As you can see, a lot
should match...
Gert-Jan
|||On Tue, 16 Nov 2004 23:23:17 +0100, Gert-Jan Strik
<sorry@.toomuchspamalready.nl> wrote:
>If the same query plan is used (you can't compare the count of a hash
>with a loop join), and the databases have the same free space (caused by
>updates and deletes), the same index depth and the same number of pages,
>then the logical read count should be the same. As you can see, a lot
>should match...
Do logical reads really know about free space?
I'm talking about logical reads from the profiler. Oh, well, yeah, I
guess it would. But EVEN SO I'm betting you could get a pretty fair
correspondence.
Most tuning I do is in search of 10x or 100x gains from tracking down
missing indexes and really bad code. I think you can see changes of
that magnitude even through the noise. If your tuning goal is a 10%
improvement, then sure, the noise will prevent any real comparison
across environments.
But in any case, if you take the bad code off production, put it in
development and get a baseline, you can measure newly developed
changes pretty well and guestimate them back up to production based on
the ratio.
J.

right way to perfromance tune?

I captured a trace from a production box. I've mad some changes with
Indexes, Stats, etc. so now I want to replay. Im mostly interested in
lowering Duration and CPU at this point. If I replay this trace on a box
thats not as powerful as Production, is this even an accurate assessment? Is
there a better way?
SQL2K SP3
TIA, ChrisROn Mon, 15 Nov 2004 15:07:08 -0800, "ChrisR" <bla@.noemail.com> wrote:
>I captured a trace from a production box. I've mad some changes with
>Indexes, Stats, etc. so now I want to replay. Im mostly interested in
>lowering Duration and CPU at this point. If I replay this trace on a box
>thats not as powerful as Production, is this even an accurate assessment? I
s
>there a better way?
Even on a very different box, AS LONG AS THE DATA IS THE SAME, eg,
full production size, then at least the logical reads should be
comparable. That's so the statistics and execution plans are the
same, not to mention getting the same results!
CPU and duration will not be comparable.
Joshua Stern|||On Mon, 15 Nov 2004 18:58:23 -0800, jxstern wrote:

>On Mon, 15 Nov 2004 15:07:08 -0800, "ChrisR" <bla@.noemail.com> wrote:
>Even on a very different box, AS LONG AS THE DATA IS THE SAME, eg,
>full production size, then at least the logical reads should be
>comparable. That's so the statistics and execution plans are the
>same, not to mention getting the same results!
>CPU and duration will not be comparable.
>Joshua Stern
Hi Joshua,
I don't think that this is correct. Completely different execution plans
can be chosen if there are more or less processors available. AFAIK, the
amount of available memory will also influence the choice.
Best, Hugo
--
(Remove _NO_ and _SPAM_ to get my e-mail address)|||On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
<hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
>I don't think that this is correct. Completely different execution plans
>can be chosen if there are more or less processors available. AFAIK, the
>amount of available memory will also influence the choice.
I didn't know that, and would like to hear more, but even so I'd bet
you could depend on logical read counts to give you a pretty good
indication of whether your database structure and queries are lined up
well, plus or minus, oh, maybe 20%.
I wonder if a parallel algorithm might do *more* logical reads, hmm.
J.|||"JXStern" <JXSternChangeX2R@.gte.net> wrote in message
news:pc5kp05cqkv13jj688b3pnjjvvid6vg9vk@.
4ax.com...
> On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
> <hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
> I didn't know that, and would like to hear more, but even so I'd bet
> you could depend on logical read counts to give you a pretty good
> indication of whether your database structure and queries are lined up
> well, plus or minus, oh, maybe 20%.
>
I doubt that. Imagine your prod server has 2 gig of RAM and your test
server has 512K. The amount of memory available for caching will be
radically different. In that case your logical reads may be far lower and
your physical reads would be far higher.

> I wonder if a parallel algorithm might do *more* logical reads, hmm.
> J.
>|||On Tue, 16 Nov 2004 07:03:31 -0800, JXStern wrote:

>On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
><hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
>I didn't know that, and would like to hear more, but even so I'd bet
>you could depend on logical read counts to give you a pretty good
>indication of whether your database structure and queries are lined up
>well, plus or minus, oh, maybe 20%.
Hi J,
I wouldn't rely on it. I don't know the details (where's Kalen when you
need her? <g> ), but I can easily imagine that the optimizer would choose
an execution plan using hash joins and sorting on a high-memory machine,
but prefer looping on a low-memory machine. Operations like sorting and
hashing tend to be relatively cheap if it's all in memory, but very
expensive if the amount of data is more than fits in memory.
Best, Hugo
--
(Remove _NO_ and _SPAM_ to get my e-mail address)|||On Tue, 16 Nov 2004 15:21:33 GMT, "Greg D. Moore \(Strider\)"
<mooregr_deleteth1s@.greenms.com> wrote:
>I doubt that. Imagine your prod server has 2 gig of RAM and your test
>server has 512K. The amount of memory available for caching will be
>radically different. In that case your logical reads may be far lower and
>your physical reads would be far higher.
For a given execution plan (and server and data, etc), aren't the
logical reads constant no matter what the physical reads?
J.|||jxstern wrote:
> On Tue, 16 Nov 2004 15:21:33 GMT, "Greg D. Moore \(Strider\)"
> <mooregr_deleteth1s@.greenms.com> wrote:
> For a given execution plan (and server and data, etc), aren't the
> logical reads constant no matter what the physical reads?
> J.
If the same query plan is used (you can't compare the count of a hash
with a loop join), and the databases have the same free space (caused by
updates and deletes), the same index depth and the same number of pages,
then the logical read count should be the same. As you can see, a lot
should match...
Gert-Jan|||On Tue, 16 Nov 2004 23:23:17 +0100, Gert-Jan Strik
<sorry@.toomuchspamalready.nl> wrote:
>If the same query plan is used (you can't compare the count of a hash
>with a loop join), and the databases have the same free space (caused by
>updates and deletes), the same index depth and the same number of pages,
>then the logical read count should be the same. As you can see, a lot
>should match...
Do logical reads really know about free space?
I'm talking about logical reads from the profiler. Oh, well, yeah, I
guess it would. But EVEN SO I'm betting you could get a pretty fair
correspondence.
Most tuning I do is in search of 10x or 100x gains from tracking down
missing indexes and really bad code. I think you can see changes of
that magnitude even through the noise. If your tuning goal is a 10%
improvement, then sure, the noise will prevent any real comparison
across environments.
But in any case, if you take the bad code off production, put it in
development and get a baseline, you can measure newly developed
changes pretty well and guestimate them back up to production based on
the ratio.
J.

Friday, March 23, 2012

right way to perfromance tune?

I captured a trace from a production box. I've mad some changes with
Indexes, Stats, etc. so now I want to replay. Im mostly interested in
lowering Duration and CPU at this point. If I replay this trace on a box
thats not as powerful as Production, is this even an accurate assessment? Is
there a better way?
--
SQL2K SP3
TIA, ChrisROn Mon, 15 Nov 2004 15:07:08 -0800, "ChrisR" <bla@.noemail.com> wrote:
>I captured a trace from a production box. I've mad some changes with
>Indexes, Stats, etc. so now I want to replay. Im mostly interested in
>lowering Duration and CPU at this point. If I replay this trace on a box
>thats not as powerful as Production, is this even an accurate assessment? Is
>there a better way?
Even on a very different box, AS LONG AS THE DATA IS THE SAME, eg,
full production size, then at least the logical reads should be
comparable. That's so the statistics and execution plans are the
same, not to mention getting the same results!
CPU and duration will not be comparable.
Joshua Stern|||On Mon, 15 Nov 2004 18:58:23 -0800, jxstern wrote:
>On Mon, 15 Nov 2004 15:07:08 -0800, "ChrisR" <bla@.noemail.com> wrote:
>>I captured a trace from a production box. I've mad some changes with
>>Indexes, Stats, etc. so now I want to replay. Im mostly interested in
>>lowering Duration and CPU at this point. If I replay this trace on a box
>>thats not as powerful as Production, is this even an accurate assessment? Is
>>there a better way?
>Even on a very different box, AS LONG AS THE DATA IS THE SAME, eg,
>full production size, then at least the logical reads should be
>comparable. That's so the statistics and execution plans are the
>same, not to mention getting the same results!
>CPU and duration will not be comparable.
>Joshua Stern
Hi Joshua,
I don't think that this is correct. Completely different execution plans
can be chosen if there are more or less processors available. AFAIK, the
amount of available memory will also influence the choice.
Best, Hugo
--
(Remove _NO_ and _SPAM_ to get my e-mail address)|||On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
<hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
>I don't think that this is correct. Completely different execution plans
>can be chosen if there are more or less processors available. AFAIK, the
>amount of available memory will also influence the choice.
I didn't know that, and would like to hear more, but even so I'd bet
you could depend on logical read counts to give you a pretty good
indication of whether your database structure and queries are lined up
well, plus or minus, oh, maybe 20%.
I wonder if a parallel algorithm might do *more* logical reads, hmm.
J.|||"JXStern" <JXSternChangeX2R@.gte.net> wrote in message
news:pc5kp05cqkv13jj688b3pnjjvvid6vg9vk@.4ax.com...
> On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
> <hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
> >I don't think that this is correct. Completely different execution plans
> >can be chosen if there are more or less processors available. AFAIK, the
> >amount of available memory will also influence the choice.
> I didn't know that, and would like to hear more, but even so I'd bet
> you could depend on logical read counts to give you a pretty good
> indication of whether your database structure and queries are lined up
> well, plus or minus, oh, maybe 20%.
>
I doubt that. Imagine your prod server has 2 gig of RAM and your test
server has 512K. The amount of memory available for caching will be
radically different. In that case your logical reads may be far lower and
your physical reads would be far higher.
> I wonder if a parallel algorithm might do *more* logical reads, hmm.
> J.
>|||On Tue, 16 Nov 2004 07:03:31 -0800, JXStern wrote:
>On Tue, 16 Nov 2004 10:27:48 +0100, Hugo Kornelis
><hugo@.pe_NO_rFact.in_SPAM_fo> wrote:
>>I don't think that this is correct. Completely different execution plans
>>can be chosen if there are more or less processors available. AFAIK, the
>>amount of available memory will also influence the choice.
>I didn't know that, and would like to hear more, but even so I'd bet
>you could depend on logical read counts to give you a pretty good
>indication of whether your database structure and queries are lined up
>well, plus or minus, oh, maybe 20%.
Hi J,
I wouldn't rely on it. I don't know the details (where's Kalen when you
need her? <g>), but I can easily imagine that the optimizer would choose
an execution plan using hash joins and sorting on a high-memory machine,
but prefer looping on a low-memory machine. Operations like sorting and
hashing tend to be relatively cheap if it's all in memory, but very
expensive if the amount of data is more than fits in memory.
Best, Hugo
--
(Remove _NO_ and _SPAM_ to get my e-mail address)|||On Tue, 16 Nov 2004 15:21:33 GMT, "Greg D. Moore \(Strider\)"
<mooregr_deleteth1s@.greenms.com> wrote:
>I doubt that. Imagine your prod server has 2 gig of RAM and your test
>server has 512K. The amount of memory available for caching will be
>radically different. In that case your logical reads may be far lower and
>your physical reads would be far higher.
For a given execution plan (and server and data, etc), aren't the
logical reads constant no matter what the physical reads?
J.|||jxstern wrote:
> On Tue, 16 Nov 2004 15:21:33 GMT, "Greg D. Moore \(Strider\)"
> <mooregr_deleteth1s@.greenms.com> wrote:
> >I doubt that. Imagine your prod server has 2 gig of RAM and your test
> >server has 512K. The amount of memory available for caching will be
> >radically different. In that case your logical reads may be far lower and
> >your physical reads would be far higher.
> For a given execution plan (and server and data, etc), aren't the
> logical reads constant no matter what the physical reads?
> J.
If the same query plan is used (you can't compare the count of a hash
with a loop join), and the databases have the same free space (caused by
updates and deletes), the same index depth and the same number of pages,
then the logical read count should be the same. As you can see, a lot
should match...
Gert-Jan|||On Tue, 16 Nov 2004 23:23:17 +0100, Gert-Jan Strik
<sorry@.toomuchspamalready.nl> wrote:
>If the same query plan is used (you can't compare the count of a hash
>with a loop join), and the databases have the same free space (caused by
>updates and deletes), the same index depth and the same number of pages,
>then the logical read count should be the same. As you can see, a lot
>should match...
Do logical reads really know about free space?
I'm talking about logical reads from the profiler. Oh, well, yeah, I
guess it would. But EVEN SO I'm betting you could get a pretty fair
correspondence.
Most tuning I do is in search of 10x or 100x gains from tracking down
missing indexes and really bad code. I think you can see changes of
that magnitude even through the noise. If your tuning goal is a 10%
improvement, then sure, the noise will prevent any real comparison
across environments.
But in any case, if you take the bad code off production, put it in
development and get a baseline, you can measure newly developed
changes pretty well and guestimate them back up to production based on
the ratio.
J.sql

Right edition for Log shipping

We have
Svr1 - Production - SQL2K Ent Edition.(sp3a)
Svr 2 -Satellite - SQL2K Std Edition.(sp3a)
We currently have replication between Svr1 and Svr2 on a database called
'Sales' (some tables).
Now we want to have an additional 'Instance' in Svr2 to act as a Disaster
Recovery for the database Sales from Svr1 using Log shipping.
Questions:
Do we need to upgrade to Enterprise edition in Svr 2 to make Log shipping to
work? (Can I manage it with just the Resource kit)
Are there any issues to watch out for?
Thanks,
Suresh KumarI believe you Enterprise Edition for Log Shipping to work.
HTH
DeeJay
>--Original Message--
>We have
>Svr1 - Production - SQL2K Ent Edition.(sp3a)
>Svr 2 -Satellite - SQL2K Std Edition.(sp3a)
>We currently have replication between Svr1 and Svr2 on a
database called
>'Sales' (some tables).
>Now we want to have an additional 'Instance' in Svr2 to
act as a Disaster
>Recovery for the database Sales from Svr1 using Log
shipping.
>Questions:
>Do we need to upgrade to Enterprise edition in Svr 2 to
make Log shipping to
>work? (Can I manage it with just the Resource kit)
>Are there any issues to watch out for?
>Thanks,
>Suresh Kumar
>
>.
>

Wednesday, March 21, 2012

richie robles

How do you copy a 'production' database from the same group to a development database. I've been told that a restore is the hot ticket, but I'm afraid of overriding data.

Quote:

Originally Posted by Richie Robles

How do you copy a 'production' database from the same group to a development database. I've been told that a restore is the hot ticket, but I'm afraid of overriding data.


Hi
create a backup of your development database and then do the restore of the production db. Keep the .bak safe somewhere :)