SlideShare a Scribd company logo
Best Practices for Optimizing
           Blackboard Learn
                    Steve Feldman,
           sfeldman@blackboard.com
optimizing* The process of increasing speed
  (performance) and capacity (scalability) of a system
  and/or program.
071410 sun a_1515_feldman_stephen
What We’ll Cover

•  Deploy for performance from the start.
•  Optimizing the platform components.
•  Continuous measurements are absolutely critical.
Scalable Deployments
Flexible and Scalable Application
Deployment
Deployment: Large Address Space
•  As of Blackboard Learn™ Release 9.1 all supported/
   certified configurations include a 64-bit option.
•  Pushing more processing to client and DB over the last
   few releases, but major memory management technique
   is to use more application caches.
   –  Memory stays persistent longer
   –  Less wasteful from a creation/destruction perspective, but puts
      greater demands on larger spaces.
•  Most of our application testing focused on 4GB and 8GB
   JVM deployments on 6GB and 10GB OS spaces.
   –  Limited testing at 16GB and 32GB
Deployment: Resource Utilization via Virtualization

 •  Moore’s law is in full effect
    –  CPUs are getting faster with more cores
    –  Memory is in abundance and cheap
    –  Storage is grossly abundant
 •  Massive systems can be obtained at low cost, but cannot
    be saturated in stand-alone configurations.
 •  Virtualization offers this opportunity…
    –  Deploy with availability in mind
    –  Saturate system resources
    –  Save money and data center space
071410 sun a_1515_feldman_stephen
Deployment: Improving Page Responsiveness
•  Gzip…Gzip…Gzip…
   –  All of our supported browsers handle gzip?
   –  Reduces payload
       •  Improves lower latency connections like Cable, DSL and Dial-up
   –  Minor overhead on the application layer (~2% to ~5%)
       •  Have the option to perform at the load-balancer layer
   –  Most Bb deployments do not enable Gzip at all
       •  Even when enabled, some proxies and software packages mess-up
          the Accept Encoding Header
•  Optimize your images
   –  Page size really does matter
   –  Reduce the size without reducing the quality
   –  Smush.it, PunnyPng, OptiPng, RIOT and ImageOptim
Example Page Waterfall
071410 sun a_1515_feldman_stephen
Tools for Page Performance
•  Analysis Tools
   –  Independent tools: Fiddler, HTTPWatch, WebPageTest.org, Web
      Inspector (Mac), IE Developer Tools
   –  Browser Plugins: Firebug/YSlow, Google Page Speed,
      WebPageTest Client
   –  JavaScript tools: dynatrace, IE Developer Tools,
•  Optimization Tools
   –  Image optimization to reduced overall size and metadata:
      SmushIt, PNGOptimize, PNGCrusher, OptiPng and
      graphicsoptimization.com
       •  http://yuiblog.com/blog/2008/10/29/imageopt-1/
   –  CSS optimization to reduce unused elements and compress
      CSS of unnecessary white spaces: CSS Optimizer, CSS
      Compressor and CleanCSS
071410 sun a_1515_feldman_stephen
Optimizing the Web Server
•  The web server in the BbLearn configuration is nothing
   more than a gateway to the application container.
   –  When clusters were more relevant, the web server acted as a
      pseudo load-balancer.
•  Not many opportunities for optimization other than
   –  KeepAlives
   –  Interfaces
   –  Compression
•  It can become a bottleneck if not properly optimized
   –  Better to have high ceilings from an interface perspective
Optimizing the JVM
•  Java hotspot offers standard –X and non-standard –XX
   options for performance and behavior.
   –  -X options are always guaranteed across releases and patches of
      Java.
   –  -XX options must be used with caution as they are subject to
      change with any release of Java.
•  -XX options should be tested and measured using the
   production safe arguments.
   –  Be careful of leveraging options you see on ListServes and
      Google
•  Read the release notes of Java for “performance” updates
   –  http://java.sun.com/javase/6/webnotes/ReleaseNotes.html
Regions of the JVM
Optimizing the JVM
•  Cross-platform recommendation for using Concurrent
   Mark Sweep Collector
   –  Best optimized for 64-bit address
   –  Combine –XX:+UseConcMarkSweepGCwith –XX:+UseParNewGC
•  Manually size New Space using –XX:NewSize and –
   XX:MaxNewSize options (1/4 to 1/3 total heap).
   –  Consider Survivor Space ratios 4 or lower.
•  Be careful about sharing –XX non-standard options across
   customers.
   –  If you don’t understand what the option does and it’s not
      recommended by Blackboard, best choice is to not use it.
•  PermSpace and B2s
   –  Every B2 you add, make sure to measure PermSpace usage via
      tools like JStat and VerboseGC
High Level Old Space Collection
Prototyping JVM Arguments
•  Wrapper.conf exists on both
   UNIX and Windows
   configurations for handling
   JVM arguments.
•  Options can be tested out
   without a
   PushConfigUpdates by
   simply adding an additional
   line with
   –  wrapper.java.additional.<insert
      numeric sequence>=
   –  Simply issue a “./
      ServiceController
      services.appserver.restart” to
      restart the JVM without
      arguments
PrintGCStats
Tools for Java Instrumentation
•  GC Log Analysis Tools: PrintGCStats, Jstat,
   GCViewer,
•  Thread Analysis Tools: Samurai, JConsole,
   JavaVisualVM,
•  Memory Analysis Tools: Eclipse Memory Analyzer,
   Jhat,
•  Robust Commercial Tools: Quest Foglight, Oracle
   OEM, Dynatrace for Java, CA IntroScope
•  Profiling Tools: Jprobe, YourKit, JProfiler
Optimizing the Database: SQL Server
•  # of data files makes no difference on SQL Server for
   Data and Transaction
•  Allow the data/transaction files to grow as big as they
   want within reason.
   –  What’s reason: 64GB
   –  http://msdn.microsoft.com/en-us/library/ms143432(sql.90).aspx
•  TempDB is completely different story
   –  # of files = # of DB Threads
   –  Set first X files to a uniform size, set last file to same size with
      auto-extension ON
   –  Determine size need over time
•  Separate volume for paging file
Optimizing the Database: SQL
Server
•  Be aware of MDOP: Max Degree of Parallelism
   –  Setting to unlimited can have a negative affect on query
      performance unintentionally.
•  AWE can and does work on 64-bit systems
•  Configure READ_COMMITTED_SNAPSHOT
•  Two nuggets of information:
   –  Learn How to Use SQL DMVs
   –  Study SQL Server Wait Events and Tuning
Optimizing the Database: Oracle
•  Balance I/Os across multiple data files (~2 to 8GB per
   file).
•  REDO is critical to performance a session/query level.
   –  Be aware of how much REDO is being used over time.
   –  NOLOGGING will disable, be we rarely use NOLOGGING
•  TEMP is very complex and used for managing transient
   data.
   –  One TEMP file is adequate
   –  If latency exists on TEMP, consider introducing TEMP file groups
•  SGA is important, but PGA can be your best friend or your
   worst enemy with high concurrency.
Optimizing the Database: Oracle
•  Oracle CBO can be your friend
   –  Must understand optimizer behavior
   –  Willingness to read Cost Execution Plans
•  Using Wait Events and Cost Execution Plans for tuning
   initiatives
   –  Wait events are at a system, session and query level
•  Importance of Statistics and Histograms
   –  CBO is just guessing without properly set statistics and
      histograms.
   –  CBO is dependent on your data.
Approach to Understanding DB Performance

•  Capture statements using some pre-identified tool
   –  Oracle AWR and ASH (Session Level)
   –  SQL Server Performance Dashboard and Performance
      Warehouse
•  Review Instance Level Information to gain a cursory view
   of “system” performance.
•  Deep dive into SQL Analysis
   –  Focus on Logical I/Os as starting point.
       •  Physical I/Os are important, but more often logical
   –  Drill into CPU consumers followed by executions
   –  Isolate physical and structural for over usage and possible
      locking conditions
   –  Question why executions, but 0 rows processed
   –  Importance of both: Histograms and Statistics
       •  Know your data better than your DBAs
071410 sun a_1515_feldman_stephen
Please provide feedback for this session by emailing
        BbWorldFeedback@blackboard.com.


 The subject of the email should be title of this
                     session:
  Best Practices for Optimizing Blackboard Learn

More Related Content

PDF
2016 may-countdown-to-postgres-v96-parallel-query
Ashnikbiz
 
PDF
PostreSQL HA and DR Setup & Use Cases
Ashnikbiz
 
PPTX
PostgreSQL Hangout Parameter Tuning
Ashnikbiz
 
PPTX
X-DB Replication Server and MMR
Ashnikbiz
 
PPTX
The Magic of Tuning in PostgreSQL
Ashnikbiz
 
PDF
MariaDB Performance Tuning and Optimization
MariaDB plc
 
PDF
PostgreSQL Scaling And Failover
John Paulett
 
KEY
Writing Scalable Software in Java
Ruben Badaró
 
2016 may-countdown-to-postgres-v96-parallel-query
Ashnikbiz
 
PostreSQL HA and DR Setup & Use Cases
Ashnikbiz
 
PostgreSQL Hangout Parameter Tuning
Ashnikbiz
 
X-DB Replication Server and MMR
Ashnikbiz
 
The Magic of Tuning in PostgreSQL
Ashnikbiz
 
MariaDB Performance Tuning and Optimization
MariaDB plc
 
PostgreSQL Scaling And Failover
John Paulett
 
Writing Scalable Software in Java
Ruben Badaró
 

What's hot (20)

PDF
EDB Postgres DBA Best Practices
EDB
 
PDF
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Jignesh Shah
 
PPTX
Apache Geode Offheap Storage
PivotalOpenSourceHub
 
PPTX
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...
xKinAnx
 
PPTX
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...
xKinAnx
 
PDF
MariaDB High Availability Webinar
MariaDB plc
 
PDF
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
Ashnikbiz
 
PPTX
001 hbase introduction
Scott Miao
 
PDF
004 architecture andadvanceduse
Scott Miao
 
PDF
Enterprise PostgreSQL - EDB's answer to conventional Databases
Ashnikbiz
 
PPT
Scaling Up and Out your Virtualized SQL Servers
heraflux
 
PPTX
Maximizing performance via tuning and optimization
MariaDB plc
 
PDF
hbaseconasia2017: HBase在Hulu的使用和实践
HBaseCon
 
PPTX
Right-Sizing your SQL Server Virtual Machine
heraflux
 
PDF
Replication Solutions for PostgreSQL
Peter Eisentraut
 
PPTX
Hardware Provisioning
MongoDB
 
PPTX
From distributed caches to in-memory data grids
Max Alexejev
 
PDF
Elephants in the Cloud
Mike Fowler
 
PDF
Chef conf-2015-chef-patterns-at-bloomberg-scale
Biju Nair
 
PDF
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...
VMworld
 
EDB Postgres DBA Best Practices
EDB
 
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Jignesh Shah
 
Apache Geode Offheap Storage
PivotalOpenSourceHub
 
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...
xKinAnx
 
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...
xKinAnx
 
MariaDB High Availability Webinar
MariaDB plc
 
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
Ashnikbiz
 
001 hbase introduction
Scott Miao
 
004 architecture andadvanceduse
Scott Miao
 
Enterprise PostgreSQL - EDB's answer to conventional Databases
Ashnikbiz
 
Scaling Up and Out your Virtualized SQL Servers
heraflux
 
Maximizing performance via tuning and optimization
MariaDB plc
 
hbaseconasia2017: HBase在Hulu的使用和实践
HBaseCon
 
Right-Sizing your SQL Server Virtual Machine
heraflux
 
Replication Solutions for PostgreSQL
Peter Eisentraut
 
Hardware Provisioning
MongoDB
 
From distributed caches to in-memory data grids
Max Alexejev
 
Elephants in the Cloud
Mike Fowler
 
Chef conf-2015-chef-patterns-at-bloomberg-scale
Biju Nair
 
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...
VMworld
 
Ad

Viewers also liked (7)

PDF
Microsoft Power Point Best Practices For Scaling Heavily Adopted And Concur...
Steve Feldman
 
PDF
Hied blackboard whitepaper
Steve Feldman
 
PPTX
Scaling Blackboard Learn™ for High Performance and Delivery
Steve Feldman
 
PPTX
Cookbook for Administrating Blackboard Learn
Steve Feldman
 
PDF
Logonomics
Steve Feldman
 
PPT
B2 2006 tomcat_clusters
Steve Feldman
 
PPTX
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role
Steve Feldman
 
Microsoft Power Point Best Practices For Scaling Heavily Adopted And Concur...
Steve Feldman
 
Hied blackboard whitepaper
Steve Feldman
 
Scaling Blackboard Learn™ for High Performance and Delivery
Steve Feldman
 
Cookbook for Administrating Blackboard Learn
Steve Feldman
 
Logonomics
Steve Feldman
 
B2 2006 tomcat_clusters
Steve Feldman
 
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role
Steve Feldman
 
Ad

Similar to 071410 sun a_1515_feldman_stephen (20)

PPTX
Cognos Performance Tuning Tips & Tricks
Senturus
 
PPTX
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community
 
PPTX
05. performance-concepts
Muhammad Ahad
 
PPTX
Capacity Planning
MongoDB
 
PDF
Storage Systems For Scalable systems
elliando dias
 
PPTX
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDB
MongoDB
 
PDF
(ATS6-PLAT06) Maximizing AEP Performance
BIOVIA
 
PPTX
Fastest Servlets in the West
Stuart (Pid) Williams
 
PPTX
Webinar: Best Practices for Upgrading to MongoDB 3.0
MongoDB
 
PPTX
Handling Massive Writes
Liran Zelkha
 
PPTX
Webinar: Best Practices for Upgrading to MongoDB 3.2
Dana Elisabeth Groce
 
PPT
Designing, Building, and Maintaining Large Cubes using Lessons Learned
Denny Lee
 
PPTX
Taking Splunk to the Next Level - Architecture Breakout Session
Splunk
 
PPTX
Maximizing performance via tuning and optimization
MariaDB plc
 
PDF
Performance tuning in sql server
Antonios Chatzipavlis
 
PPTX
SQL Server Integration Services and Analysis Services
Mohan Arumugam
 
PDF
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...
VMworld
 
PPTX
Basic Application Performance Optimization Techniques (Backend)
Klas Berlič Fras
 
PDF
Scalability designprinciples-v2-130718023602-phpapp02 (1)
Minal Patil
 
PDF
Scalability Design Principles - Internal Session
Sachin Sancheti - Microsoft Azure Architect
 
Cognos Performance Tuning Tips & Tricks
Senturus
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community
 
05. performance-concepts
Muhammad Ahad
 
Capacity Planning
MongoDB
 
Storage Systems For Scalable systems
elliando dias
 
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDB
MongoDB
 
(ATS6-PLAT06) Maximizing AEP Performance
BIOVIA
 
Fastest Servlets in the West
Stuart (Pid) Williams
 
Webinar: Best Practices for Upgrading to MongoDB 3.0
MongoDB
 
Handling Massive Writes
Liran Zelkha
 
Webinar: Best Practices for Upgrading to MongoDB 3.2
Dana Elisabeth Groce
 
Designing, Building, and Maintaining Large Cubes using Lessons Learned
Denny Lee
 
Taking Splunk to the Next Level - Architecture Breakout Session
Splunk
 
Maximizing performance via tuning and optimization
MariaDB plc
 
Performance tuning in sql server
Antonios Chatzipavlis
 
SQL Server Integration Services and Analysis Services
Mohan Arumugam
 
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...
VMworld
 
Basic Application Performance Optimization Techniques (Backend)
Klas Berlič Fras
 
Scalability designprinciples-v2-130718023602-phpapp02 (1)
Minal Patil
 
Scalability Design Principles - Internal Session
Sachin Sancheti - Microsoft Azure Architect
 

More from Steve Feldman (20)

PDF
Day 2 05 - steve feldman - logging matters
Steve Feldman
 
PDF
3days september
Steve Feldman
 
PPTX
Emerging technologies
Steve Feldman
 
PDF
Bb sql serverdell
Steve Feldman
 
PPTX
Bb world 2011 capacity planning
Steve Feldman
 
PPTX
So Your Boss Wants You to Performance Test Blackboard
Steve Feldman
 
PPT
Short reference architecture
Steve Feldman
 
PPT
Sfeldman bbworld 07_going_enterprise (1)
Steve Feldman
 
PPT
Sfeldman performance bb_worldemea07
Steve Feldman
 
PDF
Dell bb wp_final
Steve Feldman
 
PPT
B2 2006 sizing_benchmarking (1)
Steve Feldman
 
PDF
Bb performance-engineering-toad
Steve Feldman
 
PDF
Bb performance-engineering-spotlight
Steve Feldman
 
PDF
Sun blackboardwp10 1_07
Steve Feldman
 
PDF
Dell bb quest_wp_jan6
Steve Feldman
 
PDF
Hied blackboard dell_whitepaper
Steve Feldman
 
PDF
B2conference performance 2004
Steve Feldman
 
PPT
B2 2005 introduction_load_testing_blackboard_primer_draft
Steve Feldman
 
PPT
B2 2006 sizing_benchmarking
Steve Feldman
 
PDF
7.17 1130am adv.perform.forensics_bb
Steve Feldman
 
Day 2 05 - steve feldman - logging matters
Steve Feldman
 
3days september
Steve Feldman
 
Emerging technologies
Steve Feldman
 
Bb sql serverdell
Steve Feldman
 
Bb world 2011 capacity planning
Steve Feldman
 
So Your Boss Wants You to Performance Test Blackboard
Steve Feldman
 
Short reference architecture
Steve Feldman
 
Sfeldman bbworld 07_going_enterprise (1)
Steve Feldman
 
Sfeldman performance bb_worldemea07
Steve Feldman
 
Dell bb wp_final
Steve Feldman
 
B2 2006 sizing_benchmarking (1)
Steve Feldman
 
Bb performance-engineering-toad
Steve Feldman
 
Bb performance-engineering-spotlight
Steve Feldman
 
Sun blackboardwp10 1_07
Steve Feldman
 
Dell bb quest_wp_jan6
Steve Feldman
 
Hied blackboard dell_whitepaper
Steve Feldman
 
B2conference performance 2004
Steve Feldman
 
B2 2005 introduction_load_testing_blackboard_primer_draft
Steve Feldman
 
B2 2006 sizing_benchmarking
Steve Feldman
 
7.17 1130am adv.perform.forensics_bb
Steve Feldman
 

071410 sun a_1515_feldman_stephen

  • 1. Best Practices for Optimizing Blackboard Learn Steve Feldman, [email protected]
  • 2. optimizing* The process of increasing speed (performance) and capacity (scalability) of a system and/or program.
  • 4. What We’ll Cover •  Deploy for performance from the start. •  Optimizing the platform components. •  Continuous measurements are absolutely critical.
  • 6. Flexible and Scalable Application Deployment
  • 7. Deployment: Large Address Space •  As of Blackboard Learn™ Release 9.1 all supported/ certified configurations include a 64-bit option. •  Pushing more processing to client and DB over the last few releases, but major memory management technique is to use more application caches. –  Memory stays persistent longer –  Less wasteful from a creation/destruction perspective, but puts greater demands on larger spaces. •  Most of our application testing focused on 4GB and 8GB JVM deployments on 6GB and 10GB OS spaces. –  Limited testing at 16GB and 32GB
  • 8. Deployment: Resource Utilization via Virtualization •  Moore’s law is in full effect –  CPUs are getting faster with more cores –  Memory is in abundance and cheap –  Storage is grossly abundant •  Massive systems can be obtained at low cost, but cannot be saturated in stand-alone configurations. •  Virtualization offers this opportunity… –  Deploy with availability in mind –  Saturate system resources –  Save money and data center space
  • 10. Deployment: Improving Page Responsiveness •  Gzip…Gzip…Gzip… –  All of our supported browsers handle gzip? –  Reduces payload •  Improves lower latency connections like Cable, DSL and Dial-up –  Minor overhead on the application layer (~2% to ~5%) •  Have the option to perform at the load-balancer layer –  Most Bb deployments do not enable Gzip at all •  Even when enabled, some proxies and software packages mess-up the Accept Encoding Header •  Optimize your images –  Page size really does matter –  Reduce the size without reducing the quality –  Smush.it, PunnyPng, OptiPng, RIOT and ImageOptim
  • 13. Tools for Page Performance •  Analysis Tools –  Independent tools: Fiddler, HTTPWatch, WebPageTest.org, Web Inspector (Mac), IE Developer Tools –  Browser Plugins: Firebug/YSlow, Google Page Speed, WebPageTest Client –  JavaScript tools: dynatrace, IE Developer Tools, •  Optimization Tools –  Image optimization to reduced overall size and metadata: SmushIt, PNGOptimize, PNGCrusher, OptiPng and graphicsoptimization.com •  http://yuiblog.com/blog/2008/10/29/imageopt-1/ –  CSS optimization to reduce unused elements and compress CSS of unnecessary white spaces: CSS Optimizer, CSS Compressor and CleanCSS
  • 15. Optimizing the Web Server •  The web server in the BbLearn configuration is nothing more than a gateway to the application container. –  When clusters were more relevant, the web server acted as a pseudo load-balancer. •  Not many opportunities for optimization other than –  KeepAlives –  Interfaces –  Compression •  It can become a bottleneck if not properly optimized –  Better to have high ceilings from an interface perspective
  • 16. Optimizing the JVM •  Java hotspot offers standard –X and non-standard –XX options for performance and behavior. –  -X options are always guaranteed across releases and patches of Java. –  -XX options must be used with caution as they are subject to change with any release of Java. •  -XX options should be tested and measured using the production safe arguments. –  Be careful of leveraging options you see on ListServes and Google •  Read the release notes of Java for “performance” updates –  http://java.sun.com/javase/6/webnotes/ReleaseNotes.html
  • 18. Optimizing the JVM •  Cross-platform recommendation for using Concurrent Mark Sweep Collector –  Best optimized for 64-bit address –  Combine –XX:+UseConcMarkSweepGCwith –XX:+UseParNewGC •  Manually size New Space using –XX:NewSize and – XX:MaxNewSize options (1/4 to 1/3 total heap). –  Consider Survivor Space ratios 4 or lower. •  Be careful about sharing –XX non-standard options across customers. –  If you don’t understand what the option does and it’s not recommended by Blackboard, best choice is to not use it. •  PermSpace and B2s –  Every B2 you add, make sure to measure PermSpace usage via tools like JStat and VerboseGC
  • 19. High Level Old Space Collection
  • 20. Prototyping JVM Arguments •  Wrapper.conf exists on both UNIX and Windows configurations for handling JVM arguments. •  Options can be tested out without a PushConfigUpdates by simply adding an additional line with –  wrapper.java.additional.<insert numeric sequence>= –  Simply issue a “./ ServiceController services.appserver.restart” to restart the JVM without arguments
  • 22. Tools for Java Instrumentation •  GC Log Analysis Tools: PrintGCStats, Jstat, GCViewer, •  Thread Analysis Tools: Samurai, JConsole, JavaVisualVM, •  Memory Analysis Tools: Eclipse Memory Analyzer, Jhat, •  Robust Commercial Tools: Quest Foglight, Oracle OEM, Dynatrace for Java, CA IntroScope •  Profiling Tools: Jprobe, YourKit, JProfiler
  • 23. Optimizing the Database: SQL Server •  # of data files makes no difference on SQL Server for Data and Transaction •  Allow the data/transaction files to grow as big as they want within reason. –  What’s reason: 64GB –  http://msdn.microsoft.com/en-us/library/ms143432(sql.90).aspx •  TempDB is completely different story –  # of files = # of DB Threads –  Set first X files to a uniform size, set last file to same size with auto-extension ON –  Determine size need over time •  Separate volume for paging file
  • 24. Optimizing the Database: SQL Server •  Be aware of MDOP: Max Degree of Parallelism –  Setting to unlimited can have a negative affect on query performance unintentionally. •  AWE can and does work on 64-bit systems •  Configure READ_COMMITTED_SNAPSHOT •  Two nuggets of information: –  Learn How to Use SQL DMVs –  Study SQL Server Wait Events and Tuning
  • 25. Optimizing the Database: Oracle •  Balance I/Os across multiple data files (~2 to 8GB per file). •  REDO is critical to performance a session/query level. –  Be aware of how much REDO is being used over time. –  NOLOGGING will disable, be we rarely use NOLOGGING •  TEMP is very complex and used for managing transient data. –  One TEMP file is adequate –  If latency exists on TEMP, consider introducing TEMP file groups •  SGA is important, but PGA can be your best friend or your worst enemy with high concurrency.
  • 26. Optimizing the Database: Oracle •  Oracle CBO can be your friend –  Must understand optimizer behavior –  Willingness to read Cost Execution Plans •  Using Wait Events and Cost Execution Plans for tuning initiatives –  Wait events are at a system, session and query level •  Importance of Statistics and Histograms –  CBO is just guessing without properly set statistics and histograms. –  CBO is dependent on your data.
  • 27. Approach to Understanding DB Performance •  Capture statements using some pre-identified tool –  Oracle AWR and ASH (Session Level) –  SQL Server Performance Dashboard and Performance Warehouse •  Review Instance Level Information to gain a cursory view of “system” performance. •  Deep dive into SQL Analysis –  Focus on Logical I/Os as starting point. •  Physical I/Os are important, but more often logical –  Drill into CPU consumers followed by executions –  Isolate physical and structural for over usage and possible locking conditions –  Question why executions, but 0 rows processed –  Importance of both: Histograms and Statistics •  Know your data better than your DBAs
  • 29. Please provide feedback for this session by emailing [email protected]. The subject of the email should be title of this session: Best Practices for Optimizing Blackboard Learn