December 5, 2012 at 2:08 am
Hi all,
I'm having random issues of poor performance with a DB of 40 Gb.
It has more than 1200 tables but when I execute a reindex on a table (named MOV_MAG) with over one million or records, the issues are solved for some time, but they return after few weeks.
I don't want to schedule a reindex of that table every day, I would like to find where is the cause of these issues.
Some infos of the server:
It is a virtual machine Installed on hyper-v server
It is a dedicated SQL server, no other software are running
There are 3 dedicated phisical cores for 3 virtual processors.
There are 8Gb of reserved ram, 2gb for the system and 6gb for SQL Server
There are 2 virtual disks drives
The first drive is 30Gb (20Gb used) dedicated for the system (10gb free) running win2008R2
The second drive is 100Gb for the data (60gb used)
There is one virtual network adapter 1000Mbits/s and the phisical adapter is fiber optic.
The DB Server version is MS SQL 2008.
Usually there are 30 users connected.
The DB was started twelve years ago and this issue is started one year ago and I'm still trying to find a solution without results. 🙁
Can someone help me please?
Thank you in advance
Claudio (from Italy)
December 5, 2012 at 2:30 am
Why cant you reindex daily? Cant you get maintenance windows for reindexing? Also are you do update stats on this table?
December 5, 2012 at 3:43 am
I've already scheduled a weekly re index of all this DB and I can do a re index of that table every time I want if it is necessary, but I don't want if I'm not forced to do it, it is a wrong way I guess (or a patch at least).
I don't want to schedule a reindex on daily basis because I assume that a DB index should work correctly when the record is wrote, and not by re indexing a table again and again. I think that it is an useless waste of system resources.
I can get maintenance windows and the updates are done every time a record is wrote but I'm not so sure of the second because I cannot see the software which is writing these records.
Do you have a suggestion to see that?
Thanks
December 5, 2012 at 3:47 am
Index maintenance should be a regular thing, indexes get fragmented for many different reasons, I recommend reading up on indexes and fragmentation, some good links below.
http://www.sqlservercentral.com/stairway/72399/
http://sqlinthewild.co.za/index.php/2008/10/20/what-is-fragmentation/
December 5, 2012 at 4:55 am
You should consider reindexing as per their fragmentation level. Its not a one which we simply decide to do. Please go through links provided by anthony.
December 5, 2012 at 6:24 am
The post title mentioned corruption, but the contents mention performance. Which is it? Do you have random index corruption or do you have poor performance?
Typically when an index rebuild fixes performance problems, the index fragmentation was not the problem. Often the index rebuild wasn't necessary at all and an update statistics would have sufficed.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
December 5, 2012 at 6:53 am
reguitti (12/5/2012)
Hi all,I'm having random issues of poor performance with a DB of 40 Gb.
It has more than 1200 tables but when I execute a reindex on a table (named MOV_MAG) with over one million or records, the issues are solved for some time, but they return after few weeks.
I don't want to schedule a reindex of that table every day, I would like to find where is the cause of these issues.
That's not index corruption... that's just normal stuff that happens depending on what's going on.
You haven't mentioned... is it a gui, report, or stored procedure task that reindexing supposedly fixes?
--Jeff Moden
Change is inevitable... Change for the better is not.
December 5, 2012 at 8:58 am
I use the command
DBCC DBREINDEX(MOV_MAG,' ')
in a scheduled job, using MSSQL management studio gui.
I run it with a weekly schedulation, but I start it "by hand" when the issue appear.
The thing which is giving me some perplexity is that before the upgrade to a new version of the software which is using this DB, there was a complete maintenance plan, running every week (also with reindex) and it was enough for the DB, and the DB has worked flawlessly for more than ten years.
Anyway I will read surely the stairway suggestions and the fragmentation explaination from the links above, and probably I will try to write a job which will be started if the fragmentation will be higher than a percent.
Other suggestions and observations will be appreciated.
Thanks guys!
December 5, 2012 at 9:19 am
reguitti (12/5/2012)
I use the commandDBCC DBREINDEX(MOV_MAG,' ')
That's deprecated and has been for about 7 years. Look up ALTER INDEX
The thing which is giving me some perplexity is that before the upgrade to a new version of the software which is using this DB, there was a complete maintenance plan, running every week (also with reindex) and it was enough for the DB, and the DB has worked flawlessly for more than ten years.
Data growth.
As I said earlier, I doubt the problem is fragmentation. Far more likely to be statistics-related.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
December 5, 2012 at 9:24 am
I'm curious, when did you go to the virtual server? Also, has the database been growing all of this time? Finally, what else is running on the physical server?
Steve Jimmo
Sr DBA
“If we ever forget that we are One Nation Under God, then we will be a Nation gone under." - Ronald Reagan
December 5, 2012 at 10:17 am
reguitti (12/5/2012)
The thing which is giving me some perplexity is that before the upgrade to a new version of the software which is using this DB...
Not perplexing at all. Someone wrote some code that relies more heavily on statistics or has become more sensitive to a thing known as "Parameter Sniffing". It happens and, if it's 3rd party software, you don't have many choices. Either get them to "fix" it or you need to deal with it, which might require you to rebuild the indexes more often than you have in the past.
--Jeff Moden
Change is inevitable... Change for the better is not.
Viewing 11 posts - 1 through 10 (of 10 total)
You must be logged in to reply to this topic. Login to reply