Extreme Salesforce Data Volumes Webinar

59
Extreme Salesforce Data Volumes Force.com Architecture Best Practices From salesforce.coms Customer Centric Engineering – Technical Enablement team

description

Following best practices can help ensure your success. This is especially true for Force.com applications or large Salesforce orgs that have the potential to push platform limits. Salesforce allows you to easily scale up from small to large amounts of data. Mostly this is seamless, but as data sets get larger, the time required for certain operations may grow too. Join us to learn different ways of designing and configuring data structures and planning a deployment process to significantly reduce deployment times and achieve operational efficiency. Watch this webinar to: :: Explore best practices for the design, implementation, and maintenance phases of your app's lifecycle. :: Learn how seemingly unrelated components can affect one another and determine the ultimate scalability of your app. :: See live demos that illustrate innovative solutions to tough challenges, including the integration of an external data warehouse using Force.com Canvas. :: Walk away with practical tips for putting best practices into action. Intended Audience This webinar is perfect for Salesforce or Force.com architects and developers that want to better understand data management best practices to ensure both short and long-term implementation success. Although many topics focus on large data volumes, the recommendations in this presentation are equally relevant to smaller orgs.

Transcript of Extreme Salesforce Data Volumes Webinar

Page 1: Extreme Salesforce Data Volumes Webinar

Extreme Salesforce Data Volumes Force.com Architecture Best Practices

From salesforce.com’s Customer Centric Engineering – Technical Enablement team

Page 2: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Safe harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 3: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Bud Vieira

Architect Evangelist @aavra

Steve Bobrowski

Architect Evangelist @sbob909

Speakers

Page 4: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Follow Developer Force for the latest news

@forcedotcom / #forcewebinar

Developer Force group

Developer Force – Force.com Community

+Developer Force – Force.com Community

Developer Force

Page 5: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Architect Core Resource page

•  Featured content for architects •  Articles, papers, blog posts, events

•  Follow us on Twitter

Updated weekly!

http://developer.force.com/architect

Page 6: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Have questions?

§  We have an expert support team at the ready to answer your questions during the webinar.

§  Ask your questions via the GoToWebinar Questions Pane.

§  The speaker(s) will choose top questions to answer live at the end of the webinar.

§  Please post your questions as we go along!

§  Only post your question once; we’ll get to it as we go down the list.

Page 7: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Today’s Learning Goal

AWARENESS

Page 8: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

You might be surprised!

How much data can the Salesforce Platform handle?

Page 9: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Best practices Configure Maintain Load Design

Page 10: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Design best practices

Page 11: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Design phase best practices

Requirements� Data volume and growth�

Query �design�

Text �searching �

Page 12: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Requirements

Page 13: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Understand application and user requirements

How many records make

sense in each list view and report?�

How much operational data

is really necessary?�

Can you deem �certain data

historical or not useful for views

and reports?�

Page 14: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Example: Design list views that make sense

How many pages of data records can a human process?

Page 15: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Data volume and growth

Page 16: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Estimate the growth and volume of data

At what rate will the data volume increase from transactions?

From data loads?�

Can you offset the data growth

by archiving data? Hard-

deletes? Recycle bin empties? �

Can you eliminate certain types of data from your schema? From

your data loads?�

Page 17: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Example: Project monthly and annual growth

Large Object X (Monthly) Transaction growth rate •  Records •  GB Data load growth rate •  Records •  GB Archival offset •  Records •  GB

Page 18: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Key success factor: Minimize data volume

Devise a data loading plan �

that meets, but doesn’t exceed, requirements�

After archiving, �hard-delete rows

or empty the recycle bin�

Devise a data offloading plan �that archives

unnecessary data�

Page 19: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Query design

Page 20: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Learn how to design efficient queries

Document available �indexes�

Design selective list views,

reports, and SOQL queries�

Understand �SOQL query optimization�

Page 21: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Document available indexes

Page 22: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Cheat Sheet: Indexed Fields

http://developer.force.com/architect

Page 23: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Example: Design and profile selective SOQL

Page 24: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Full-text search

Page 25: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Learn how to design efficient searches

Document available �indexes�

Design selective list views,

reports, and SOSL queries�

Understand �SOSL query optimization�

Page 26: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Document text fields with Search indexes

Page 27: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Cheat Sheet: Search Fields

http://developer.force.com/architect

Page 28: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Learn how Search retrieves rows

DB

INDEX

DB processing includes sharing access check

Millions of

records

Query across entire index for matches to search string

Record IDs of matches to query are sent to DB for processing

Page 29: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Review: Design phase best practices

ü Know your requirements ü Estimate data growth rate ü Minimize data volume

ü Design efficient operations ü Plan an efficient sharing model

Page 30: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Data load best practices

Page 31: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Data load best practices

Clean and organize data before loading �

Use Bulk APIs for better

throughput�

Check out AppExchange

tools�

Disable and defer what you can�

Page 32: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Prepare your data to avoid overhead

Page 33: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Disable actions that fire on insert

Triggers

Workflow Rules

Validation Rules

Page 34: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Understand the Force.com Bulk API

Page 35: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Be aware of Bulk API limits

Page 36: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Look for utilities to help get the job done easy

Page 37: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Defer sharing calculations

Or … load with Public default sharing

Page 38: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Review: Data load phase best practices

ü  Load cleansed data ü Use the Bulk API ü Consider loading utilities that use the Bulk API

ü Disable triggers, validations, and workflow ü Defer sharing calculations

Page 39: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Configuration best practices

Page 40: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Learn how to create an efficient sharing model

Distribute ownership and parenting of

records�

Streamline group nesting and your �role hierarchy�

Beware of locking on updates�

Don’t overprotect your data�

Page 41: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Don’t overprotect your data

Page 42: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Streamline your role Hierarchy

Complex hierarchies = longer sharing calculations Keep nesting below 10 levels Simplify sales branch if using territory management

Page 43: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Avoid skewed data configurations

Ownership Parent-child

Page 44: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Beware of locking on updates

Organization Lock

X

X

Record Lock

Single thread group updates Use Granular Locking

Avoid parent child skew Sequence updates by ParentID

Page 45: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Review: Configuration phase best practices

ü Keep data public when possible ü Use a lean role hierarchy ü Avoid data skews ü Minimize record lock traps

Page 46: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Maintenance best practices

Page 47: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Maintenance phase best practices

Custom indexing �

Data partitioning �

Skinny tables�Application�partitioning �

Page 48: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Custom indexes

Page 49: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Create your own indexes

Page 50: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Request non-standard indexes

Create a Support request to implement custom one and two-field indexes

Page 51: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Skinny tables

Page 52: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Query tuning with skinny tables

Page 53: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Data partitioning

Page 54: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Test and implement divisions

Page 55: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Application partitioning

Page 56: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Leverage Salesforce Platform components

100010010

ETL process

Heroku app & database manages historical data

Force.com Canvas facilitates seamless, transparent integration of

operational & historical data

Lean Salesforce org manages operational data

Page 57: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Demo

Integrated best practices

Page 58: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar Join the conversation: #forcewebinar

Demo: Integrated best practices

ü Lean Salesforce database ü Archive historical data

ü Hard-delete archived records

ü  Leverage external application (Heroku) for analytics ü  Integrate UIs using Force.com Canvas

Page 59: Extreme Salesforce Data Volumes Webinar

Join the conversation: #forcewebinar

Additional Resources

More Best Practices @

Architect Core Resources

http://developer.force.com/architect