|
|
|
Forum Newbie
      
Group: General Forum Members
Last Login: Tuesday, April 26, 2011 1:11 PM
Points: 3,
Visits: 47
|
|
Hi evryone,
i need your graat help by suggesting the solution to my problem. Im using my server for ETL process. we are expecting 30 - 35% increase in datavolume by the next month.
our ETL cycle starts from 10.30 and ends between 4.30 and 5.30, sla time is 6.30 (should not cross that). but wht worrying me is increase in data volume my increase this ETL load and report time. How can i improve my server performance.
we have implemented horizontal partioning of some facts and aggregates using partitioned views. performing insertions into underlying tables than inserting into views. using No lack table hint in select queries, updating statistics daily nad reindexing weekly
server :hp prolient 64 bit sql server 2005 sp2 memory config :AWE enabled, total 16gb and available :1.12gb virtual : 23.38 Gb available 8.55 Gb pagefile 7.99 Gb pagefile : c:\pagefile.sys
Database : divided onto files and filegroups mdf and 6ndf files. all these files are stored on M:drive {san}
Review this partioning, indexes and server config and our ETL stratergy and suggest me the ebneficial measures
|
|
|
|
|
SSCrazy
      
Group: General Forum Members
Last Login: Wednesday, May 15, 2013 4:27 PM
Points: 2,007,
Visits: 6,040
|
|
AWE should not be enabled on 64bit systems.
Does the server have 16GB of memory total? If there is only 1.2GB available you are choking the OS, that can seriously impact things that the ETL process can require.
Do you have the "Lock Pages in Memory" setting on for the service account that you are using?
You mention the virtual memory, you should not be paging at all, so this should be irrelevant, if you are seeing paging it is because you either have only 1.2GB for the OS, or it's paging out SQL processes in order to run OS processes.
Make a start with those things and if you get no improvements then you'll need to provide schemas, scripts and data examples.
Shamless self promotion - read my blog http://sirsql.net
|
|
|
|
|
SSC-Dedicated
           
Group: General Forum Members
Last Login: Yesterday @ 4:15 PM
Points: 37,651,
Visits: 29,903
|
|
Couple things...
Nolock is not a good thing to add everywhere. Are you aware of the problems it may cause and do you feel that the risks of bad data are acceptable? What's SQL's max memory set to? From the sound of things, it should perhaps be lowered. Are the log files also on M? If so, why? What's the RAID level of the SAN drives and are they dedicated?
Is it 64 bit SQL? Enterprise edition? Standard edition? If enterprise, have you considered partitioned tables, rather than partitioned views?
As for advice, profile the ETL process, find the slowest portion and then look at optimising that. Looking at the entire thing in one go is not a good idea. You need to identify the pain points and fix those, then find the next most problematic point and fix that, etc, etc
Gail Shaw Microsoft Certified Master: SQL Server 2008, MVP SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter We stand on the bridge and no one may pass
|
|
|
|
|
Ten Centuries
      
Group: General Forum Members
Last Login: Friday, May 17, 2013 2:38 PM
Points: 1,318,
Visits: 1,763
|
|
In addition to the other suggestions, make sure that:
1) Join columns are indexed
2) Indexes have the proper freespace and are reorganized / rebuilt as often as needed to keep them functioning well
3) Queries do not do functions on table columns unless absolutely necessary, esp. on indexed columns. For example, instead of: WHERE YEAR(datecolumn) = 2008 AND MONTH(columnname) = 2 write: WHERE datecolumn >= '20080201' AND datecolumn < '20080301'
4) Tempdb has at least one data file per processor core
Since you have only one SAN drive, you cannot be using RAID 1 for logs and RAID 5/10 for data. This will affect your performance as well.
SQL DBA,SQL Server MVP('07, '08, '09) One man with courage makes a majority. Andrew Jackson
|
|
|
|
|
SSC-Dedicated
           
Group: General Forum Members
Last Login: Yesterday @ 9:57 PM
Points: 32,893,
Visits: 26,771
|
|
|
|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Wednesday, September 29, 2010 5:23 AM
Points: 194,
Visits: 2,357
|
|
Don't use Table or View as your data access method when loading or transferring data. This apparently uses a cursor behind the scenes, and as a result kills your ETL. Or at least means it runs forever. Rather than use table or view, on say vwMyETLSource you are actually better off using SQL Command for data access method with SELECT * FROM vwMyETLSource.
Goes against the grain I know
|
|
|
|