SSAS_HardwareSizingTabularSolutions

download SSAS_HardwareSizingTabularSolutions

of 33

Transcript of SSAS_HardwareSizingTabularSolutions

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    1/33

    Hardware Sizing a TabularSolution (SQL Server AnalysisServices)

    SQL Server Technical Article

    Authors: John Sirmon, Heidi Steen

    Contributors and Technical Reviewers:Karen Aleksanyan, Greg Galloway, Darren

    Gosbell, Karan Gulati, Chris Kurt, Teo Lachev, Greg Low, Akshai Mirchandani, BoyanPenev, he! he!!ard, Chris Testa"#$%eill

    Published:January 2013

    Applies to:SQL Server 2012 Analysis Services, Tabular Solutions

    Summary:Provides guidance &or esti'ating the hardware re(uire'ents needed to

    su!!ort !rocessing and (uery workloads &or an Analysis ervices tabular solution)

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    2/33

    Co!yright

    This docu'ent is !rovided *as"is+) n&or'ation and views e-!ressed in this

    docu'ent, including ./L and other nternet 0eb site re&erences, 'ay change

    without notice) 1ou bear the risk o& using it)

    o'e e-a'!les de!icted herein are !rovided &or illustration only and are 2ctitious)

    %o real association or connection is intended or should be in&erred)

    This docu'ent does not !rovide you with any legal rights to any intellectual

    !ro!erty in any Microso&t !roduct) 1ou 'ay co!y and use this docu'ent &or your

    internal, re&erence !ur!oses)

    3 4567 Microso&t) All rights reserved)

    4

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    3/33

    Contentsntroduction)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 8

    9ardware Considerations &or a Develo!'ent :nviron'ent))))))))))))))))))))))))))))))))))))))));

    Me'ory))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

    CP.))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6>

    Cores))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 45

    #ther considerations))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))45

    #nboard Cache L6, L4)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))46

    %.MA)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 44

    Monitor CP. .sage))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))44

    CP. usage during (uery e-ecution))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))47

    Key Points))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 48Disk #))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4;

    9ardware Con2guration :-a'!les)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))4

    Conclusion)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    10/33

    Maximum database size

    &here are no theoretical limits on the physical si!e of the

    dataase, e'cept those imposed y the system, which must e

    ale to store all data dictionaries, column segments (this is the

    storage unit for taular dataases), caches, and the formula

    engine in memory. &he system will page uncompressed data

    to disk during processing, ut you should not count on it for

    normal server operations.

    Calculate 'e%ory "or #atabases at &estAs a 2rst ste!, you will need to calculate the a'ount o& /AM you will need to si'!ly

    store the database, irres!ective o& the !rocessing and (uery o!erations that will

    co'e later)

    or databases that are already built, you can calculate database siEe in 'e'ory

    using any o& the &ollowing techni(uesH

    /un a DMI (uery that re!orts on database siEe

    /ead the database 2le siEe on disk

    Iiew esti'ated database siEe in Manage'ent tudio as 'entioned in the

    !revious section

    or !ro?ects at a 'ore !reli'inary stage, including !ro?ects with data siEes that

    e-ceed the ca!acity o& develo!'ent 'achines, you will need to base your esti'ateon the unco'!ressed dataset that you are 'odeling, or build a !rototy!e that uses

    a subset o& your data)

    Many custo'ers routinely use PowerPivot &or :-cel as a tool &or testing how 'uch

    co'!ression they$ll get &or their raw data) Although PowerPivot uses a slightly

    diFerent co'!ression algorith', the co'!ression engine is the sa'e, allowing you

    to arrive at reasonable esti'ate when !rototy!ing with the PowerPivot add"in)

    PowerPivot add"in is available in 74"bit and 8"bit versions) The 8"bit version

    su!!orts 'uch bigger 'odels) Try to use that version i& you can)

    #ther custo'ers who work with large datasets usually a!!ly 2lters during i'!ort toselect a subset o& data &or e-a'!le, 2ltering on one day$s worth o& transactions)

    This a!!roach gives you a s'aller and 'ore 'anageable dataset, while retaining

    the ability to e-tra!olate a realistic esti'ate o& the 2nal dataset all things being

    e(ual, i& one day$s dataset is 45 MB, a 'onth is roughly 55 MB) 0hen choosing a

    2lter, however, it is i'!ortant to 'ake sure that the subset o& the data is still

    re!resentative o& the overall data) or e-a'!le, it 'ight 'ake 'ore sense to 2lter

    by date than by city or state)

    65

    http://office.microsoft.com/en-us/excel-help/data-model-specification-and-limits-HA102837464.aspxhttp://office.microsoft.com/en-us/excel-help/data-model-specification-and-limits-HA102837464.aspx
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    11/33

    & you are contending with tabular 'odel de!loy'ent on a syste' that has little

    /AM to s!are, you can o!ti'iEe your 'odel to reduce its 'e'ory &oot!rint)

    Co''on techni(ues include o'itting high cardinality colu'ns that are not

    necessary in the 'odel) Another tradeoF that a solution architect will consider is

    using a 'easure in lieu o& a calculated colu'n) A calculated colu'n is evaluated

    during !rocessing and !ersisted to 'e'ory) As a result, it !er&or's well during(uery e-ecution) Contrast that with a 'easure that !rovides e(uivalent data, but is

    generated during (uery e-ecution and e-ists only until evicted &ro' cache) The

    (uery runs slower due to e-tra co'!utations, but the bene2t is a reduction in

    !ersistent storage used on an ongoing basis)

    'e%ory &e.uire%ents "or #isaster &ecovery0hen esti'ating 'e'ory usage, re'e'ber to budget &or database restore to allow

    &or situations where the database beco'es corru!ted or unusable) 9aving

    insucient 'e'ory to !er&or' this o!eration will li'it your recovery o!tions

    considerably, !erha!s re(uiring you to detachother databases that you$d rather

    kee! online) deally, you should have enough /AM to restore and test a backu!

    be&ore re'oving the one that is being re!laced) & the backu! is corru!t, unusable,

    or too stale, you 'ight want to salvage what you can &ro' the original database

    be&ore deleting it co'!letely)

    9aving enough 'e'ory &or restore e(uates to about 4- the siEe o& the database,

    about the sa'e a'ount you would need &or &ull !rocessing) :sti'ating hardware

    resources &or disaster recovery does not 'ean you need an additional 4- /AM on

    to! o& that already budgeted &or !rocessingJ it ?ust gives you one 'ore reason to

    have /AM that is 4"7- siEe o& your solution)

    An alternative a!!roach that others have &ound eFective is to use IMs) 1ou can

    (uickly reload a !revious virtual 'achine sna!shot to restore data access to a

    tabular solution)

    'e%ory &e.uire%ents "or rogra% /ecutionAnalysis ervices reserves a!!ro-i'ately 6;5 'egabytes MB o& 'e'ory &or

    !rogra' e-ecution, or'ula :ngine, torage :ngine, shared ob?ects, and shared

    cache) An Analysis ervices instance that has no databases will use 6;5 MB o& /AM

    on the host co'!uter)

    n addition, data dictionaries are always locked in 'e'ory, never !aged to disk

    only seg'ent data can be !aged to disk, and then only when the syste' is under

    'e'ory !ressure) The data dictionaries o& all databases running on a tabular 'ode

    server will load into 'e'ory on service start u!)

    66

    http://msdn.microsoft.com/en-us/library/cc280583.aspxhttp://msdn.microsoft.com/en-us/library/cc280583.aspx
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    12/33

    sti%ating 'e%ory "or rocessingProcessing, which includes reading, encoding, and loading co'!ressed data into

    tabular 'odel ob?ects, is the 2rst resource"intensive workload you$ll need to

    consider) Processing is a 'e'ory"intensive o!eration, re(uiring at least two ti'es

    the a'ount o& 'e'ory re(uired to store the database when it$s 2nally !rocessed

    and de!loyed) Processing uses 'e'ory &or storing both co'!ressed andunco'!ressed data while it$s being read and encoded)

    or e-ce!tionally large databases, you can oOoad !rocessing to another 'achine,

    and then synchroniEethe &ully !rocessed database to a !roduction server) & you

    re&er back to the server 'a! illustration, this a!!roach saves you the 'e'ory

    re(uired &or hosting the current database used &or servicing (ueries while the new

    database is built in the background) Although this a!!roach to !rocessing can lower

    your resource re(uire'ents considerably, &or the !ur!oses o& this guide, we$ll

    assu'e you are !rocessing the database on the !roduction server)

    The 'ost co''on a!!roach &or esti'ating 'e'ory usage &or !rocessing is basedon a &actor o& database siEe at Eero load) Me'ory re(uire'ents will vary de!ending

    on how well data is co'!ressed) %otably, co'!ression is greater &or colu'ns that

    store re!eating values, whereas colu'ns containing distinct values do not co'!ress

    well)

    The techni(ue we reco''end &or getting !reli'inary esti'ates is to use a si'!le

    &or'ula &or calculating co'!ression and !rocessing re(uire'ents) n s!ite o& its

    li'itations, using a &or'ula to is a reasonable !lace to start i& you re(uire a ball!ark

    2gure) To i'!rove u!on your esti'ate, you can !rototy!e the 'odel you !lan to

    de!loy using a re!resentative sa'!le o& the larger datasetH

    .se a &or'ula to get an initial esti'ate)

    Build a !rototy!e to re2ne the esti'ate)

    Alternatively, i'!ort a subset o& rows &ro' each table and then 'ulti!ly to get an

    esti'ated siEe)

    0se a "or%ula to get an initial esti%ate

    The &ollowing &or'ula !rovides an initial esti'ate o& the 'e'ory you$ll need to

    !rocess and store all o& your data in local 'e'ory)

    iEe o& unco'!ressed dataQ 65 R 4

    .nco'!ressed data is the siEe o& the database 2le, assu'ing you$re i'!orting all or

    'ost o& the database into a tabular solution)

    64

    http://msdn.microsoft.com/en-us/library/ms174928(v=sql.110).aspxhttp://msdn.microsoft.com/en-us/library/ms174928(v=sql.110).aspx
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    13/33

    or a @L erver database, you can run s!Ss!aceusedto return siEe in&or'ation &or

    each table) The &ollowing screenshot !rovides an illustration using the

    act#nlineales table, which 'easures around 74 'egabytes)

    Alternatively, to get overall database siEe, o'it the table na'e and e-ecute

    s$1s$aceusedas &ollowsH

    Co%$osition o" t*e "or%ula

    Dividing unco'!ressed data by ten gives you an esti'ate o& 'odel siEe a&ter the

    data is co'!ressed) This is how 'uch 'e'ory the 'odel will consu'e once it is

    de!loyed to the server)

    The deno'inator 65 was arrived at by averaging the actual co'!ression rates

    over a wide range o& data sets) or your solution, actual co'!ression 'ight be

    'uch lower 4 or 7 or 'uch higher 655-, de!ending on data ty!e, length, and

    cardinality) Tables or colu'ns containing 'ostly uni(ue data values such as &act

    tables will e-!erience 'ini'al co'!ression, while other tables 'ight co'!ress by

    a lot) or esti'ation !ur!oses, ten is o&ten cited as an acce!table, 'iddle o& the

    road esti'ate o& overall co'!ression &or a database that includes a balance o&

    uni(ue and non"uni(ue values)

    The second !art o& the &or'ula asks you to double the a'ount o& 'e'ory used by

    the database) Doubling 'e'ory accounts &or !rocessing o!erations, as the server

    kee!s a second co!y o& the database in 'e'ory to service (uery re(uests while

    !rocessing runs in the background)

    67

    Use ContosoRetailDW;

    Go

    Exec sp_spaceused;

    Go

    http://msdn.microsoft.com/en-us/library/ms188776.aspxhttp://msdn.microsoft.com/en-us/library/ms188776.aspx
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    14/33

    Me'ory used to store the database co!y is i''ediately released a&ter !rocessing

    concludes, but that doesn$t 'ean 'e'ory usage di'inishes to ?ust the /AM needed

    to store the database) @ueries and torage :ngine caches also consu'e 'e'ory)

    #n the server, a (uery devolves into table scans that select and aggregate data,

    calculations, and other o!erations)

    $s you investigate memory usage y taular solutions, you

    might come across other formulas that are more roust

    mathematically, yet harder to use if you are not deeply familiar

    with the data. In the end, you might *nd it more productive to

    use a simplistic formula for an initial estimate, and then move

    on to prototype a solution using a suset of your own data.

    'easure %e%ory used by individual ob2ectsAnalysis ervices !rovides Dyna'ic Manage'ent Iiews DMI that show

    'etadata and syste' in&or'ation, !articularly 'e'ory usage, &or 'odel ob?ects)

    0hile not strictly a hardware siEing e-ercise, knowing which ob?ects take u! the

    'ost 'e'ory gives you the o!!ortunity to identi&y and !ossibly re'ove any

    resource"intensive ob?ects you don$t actually need)

    6) #!en an MD (uery window in @L erver Manage'ent tudio, connecting to

    the tabular instance running your database)4) :nter the &ollowing DMI co''and, elect R &ro'

    Uyste')discoverSob?ectS'e'orySusage, and click /ecute) 1ou can orderby nonshrinkable 'e'ory to see which colu'ns in this case, the alesKey in

    the actalesTable are using the 'ost 'e'ory)

    0hile running a DMI is acce!table, we reco''end that you download and use a

    workbook created and !ublished by Kas!er De Vonge, an Analysis ervices !rogra'

    'anager) 9is workbook uses DMI (ueries to re!ort 'e'ory usage by ob?ect, but

    i'!roves u!on the raw DMI by organiEing and !resenting the results in a hierarchy

    that lets you drill down into the details)

    68

    http://www.powerpivotblog.nl/what-is-using-all-that-memory-on-my-analysis-server-instancehttp://www.powerpivotblog.nl/what-is-using-all-that-memory-on-my-analysis-server-instancehttp://www.powerpivotblog.nl/what-is-using-all-that-memory-on-my-analysis-server-instancehttp://www.powerpivotblog.nl/what-is-using-all-that-memory-on-my-analysis-server-instance
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    15/33

    Best o& all, the workbook re!orts on database siEe)

    &e3ne t*e esti%ate by building a $rototy$e t*at yields a better value "or

    data co%$ression

    As we work our way u! the continuu' o& esti'ation techni(ues, we arrive at one o&

    the 'ore robust a!!roachesH !rototy!ing using your own data)

    The best way to deter'ine how well your data co'!resses in a tabular solution is

    to start with so'e initial data i'!orts) Because the ob?ective is to understand

    co'!ression behavior, treat this as a !rototy!ing e-ercise) & you were building a

    'odel you !lanned to kee!, you would s!end ti'e thinking about 'odel design) orour !ur!oses, you can set those !roble's aside and &ocus si'!ly on choosing which

    tables and colu'ns to i'!ort &or the !ur!ose o& esti'ating database siEe)

    The &ollowing ste!s a!!roach !rototy!ing &ro' the stand!oint o& large datasets) &

    your dataset is not large, you can ?ust run rocess ull) #therwise, !rocess ?ust

    one table at ti'e, and then run rocess &ecalcat the end to !rocess table

    de!endencies)

    6) Create a new tabular !ro?ect using @L erver Data Tools)4) '!ort the largest table &ro' your e-ternal data source into a tabular 'odel)

    & it$s a &act table, e-clude any colu'ns that are not needed in the 'odel).sually, the !ri'ary key o& a &act table is a good candidate &or e-clusion, as

    are colu'ns that are only re(uired &or :TL !rocessing)7) Process the table and de!loy it to a develo!'ent server)8) & de!loy'ent succeeds, 'easure the siEe o& the co'!ressed table in

    'e'ory) & de!loy'ent &ails, a!!ly a 2lter to get a s'aller rowset, while

    ensuring that the 2ltered rowset is still re!resentative o& the overall table)

    6;

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    16/33

    ;) '!ort and !rocess a second table, de!loy the solution, 'easure 'e'ory

    usage, and then re!eat with additional tables)) to! when you have sucient dataset re!resentation in your 'odel)

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    17/33

    DA (uery o!ti'iEation is beyond the sco!e o& this guide, but other sources are

    available that cover this 'aterial) ee the links at the end o& this docu'ent &or

    'ore in&or'ation)

    About Concurrency Testing0hen you have a large nu'ber o& users re(uesting data &ro' a 'odel, 'e'ory

    usage will cli'b accordingly, but the a'ount re(uired will vary de!ending on the

    (uery itsel&) & you have 655 users accessing a re!ort that issues an identical (uery

    each ti'e, the (uery results are likely to be cached and the incre'ental 'e'ory

    usage will be li'ited to ?ust that result set) #& course, i& each user a!!lies a 2lter to

    that (uery, it$s the e(uivalent o& having 655 uni(ue (ueries, a vast diFerence in

    'e'ory consu'!tion)

    To truly understand the i'!act o& a large nu'ber o& re(uests, you will need to load

    test your solution) Iisual tudio includes a load testing 'odule that lets yousi'ulate 'ulti!le user re(uests at varying intervals &or diFerent client a!!lications)

    The con2guration o& load tests using this &acility is beyond the sco!e o& this guide,

    but worth 'entioning due to its relevance to hardware !rovisioning) erious load

    testing re(uires a !ro&essional toolset) t$s not si'!le to do, but Iisual tudio oFers

    one o& the better a!!roaches &or testing a server under load) or 'ore in&or'ation,

    see 0orking with Load Test Iisual tudio Tea' :dition, Can your B solution scale[,

    and Load Testing Analysis ervices)

    'onitor %e%ory usage during $rocessing and .ueryingPer&or'ance Monitor is an o&t"used tool &or understanding 'e'ory usage and

    trends at the o!erating syste' level) 1ou$ll use it regularly to understand 'e'ory

    allocation and release !atterns &or your tabular solutions)

    The &ollowing ste!s will get you started with 'onitoring /AM usage in Per&or'ance

    MonitorH

    6) solate a database at the instance level by detaching other databases so that

    an instance is running only the database we want to look at) 1ou can detach

    databases using Manage'ent tudio)

    4) n Per&or'ance Monitor, select the tabular instance on the syste' shown inthe screenshot, a tabular server is installed as na'ed instance, as

    localhostXtabular)

    6

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    18/33

    7) :-!and 'SOLA4TA50LA&!''O&6and select 'e%ory 0sage -5,

    7ertia. Non$aged -5, and 7ertia. aged -5)

    8) :-ecute a rocess ullagainst the database in Manage'ent tudio to

    understand how 'e'ory is used)

    The &ollowing screen ca!ture shows a ty!ical !attern o& increasing 'e'ory

    consu'!tion the counter shown is &or 'e%ory 0sage -5, leveling out at

    'a-i'u' allowed =5N /AM by de&ault, with 'e'ory released as !rocessing

    concludes)

    6=

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    19/33

    %e-t, issue (ueries against the database to understand the (uery !ro2le o& your

    client a!!lication)

    & the (uery can be e-ecuted against the co'!ressed data, you won$t see a

    noticeable diFerence in 'e'ory usage on the server) #therwise, you$ll see a

    transient surge in 'e'ory usage as te'!orary tables are created to store and scanunco'!ressed data)

    Although 'e'ory s!ikes during (uery e-ecution are s!oradic, the sa'e cannot be

    said &or client a!!lications) Client a!!lications will 'ost certainly consu'e 'e'ory

    as data is retrieved &ro' the tabular 'odel) As !art o& your investigation, consider

    adding client !rocesses to the trace to 'onitor 'e'ory usage)

    6) #n the client co'!uter, start the client a!!lications used to (uery the 'odel)4) n Per&or'ance Monitor start a new trace)7) Add counters &or client !rocesses) Client !rocesses are listed under the

    rocessob?ect in Per&or'ance Monitor)

    a) or Manage'ent tudio, select ss%snot to be con&used with s%ss)b) or :-cel, select e/cel)c) or Power Iiew in harePoint, hosting is in one the harePoint ervice

    A!!lication A!!Pool !rocesses usually w7w!)e-e)

    -ey ointsA tabular solution uses 'e'ory during !rocessing, when loading 'etadata a&ter a

    service restart, and when loading re'aining data on the 2rst (uery issued against

    the 'odel) #nce a tabular database is loaded, 'e'ory usage re'ains relatively

    stable unless A needs to build te'!orary tables during (uery e-ecution)

    6>

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    20/33

    /elative to !rocessing and basic storage re(uire'ents, 'e'ory used &or (ueries

    tends to be 'ini'al) & you$re 'onitoring a (uery workload in Per&or'ance Monitor,

    you$ll notice that 'e'ory usage is o&ten \at &or 'any (ueries)

    A (uery can result in a te'!orary but radical u!tick in 'e'ory usage i& a colu'n or

    table needs to be deco'!ressed during (uery e-ecution) Certain &unctions such as:A/L:T, .M, and LT:/ are known to have !er&or'ance i'!act) Always test

    the (ueries and re!orts you !lan to run in a !roduction environ'ent to understand

    their !er&or'ance !ro2le)

    0hen calculating 'e'ory usage on a develo!'ent 'achine, any works!ace

    databases loaded in 'e'ory will skew your 'easure'ents) Be sure to unload the

    works!ace database when collecting 'etrics about 'e'ory usage)

    inally, re'e'ber to 'onitor 'e'ory used by client a!!lications) A (uery 'ight be

    trivial &or the torage :ngine, yet bring a client workstation to its knees i& a 'assive

    a'ount o& data is read into its 'e'ory)

    'e%ory 5andwidt* and S$eed

    Moving &ro' a disk"bound architecture to 'e'ory"bound architecture shi&ts

    !er&or'ance bottlenecks &ro' disk access to 'e'ory access) Vust like you needed

    &ast disks &or 'ultidi'ensional 'odels, you$ll need &ast 'e'ory to get the

    !er&or'ance you want &ro' o& a tabular solution)

    As o& this writing, we$re still testing 'e'ory subsyste' &eatures to understand

    where the tradeoFs are) @uestions under investigation include identi&ying changes

    in (uery !er&or'ance when adding 'ore integrated 'e'ory controllers versus

    adding 'ore /AM) n a &uture u!date to this !a!er, we !lan to share our 2ndings to

    these and other (uestions related to 'e'ory !er&or'ance)

    0hat we do know at this !oint is 'e'ory bandwidth beco'es increasingly

    i'!ortant as you add cores) The 'ore cores you have, the greater the nu'ber o&

    threads re(uesting read o!erations &ro' 'e'ory) Many server workloads involve

    scanning large tables with little !rocessingJ having sucient 'e'ory bandwidth

    lets 'ore o& those re(uests get through at one ti'e)

    Bus s!eed is also crucial) n a &ew isolated cases, high"end workstations that have a

    shorter &aster bus have been known to out!er&or' business class servers)

    n the ne-t section, we$ll discuss the i'!ortance o& onboard cache) 9owever,

    regardless o& how 'uch onboard cache you have, reading data &ro' /AM is going to

    ha!!en regularly) yste's that have high !er&or'ance 'e'ory and e-tra

    bandwidth are better e(ui!!ed to deal with the technical challenges o& hosting an

    45

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    21/33

    in"'e'ory solution) As you evaluate diFerent hardware syste's, look &or syste's

    that oFer better than average 'e'ory !er&or'ance and integrated 'e'ory

    controllers)

    -ey oints

    Tabular solution architectures are o!ti'iEed &or (uery !er&or'ance, !redicated on/AM storage being 'uch &aster to read &ro' than disk) 0hen evaluating /AM,

    consider 'e'ory designs that balance through!ut and s!eed)

    C0

    electing a &ast CP. with a sucient nu'ber o& cores is also a to! consideration) n

    a tabular solution, CP. utiliEation is greatest when (uery evaluation is !ushed to the

    torage :ngine) n contrast, CP. bottlenecks are 'ore likely to occur when a (uery

    or calculation is !ushed to the single"threaded or'ula :ngine) Because each (ueryis single"threaded in the or'ula :ngine, on a 'ulti"core syste', you 'ight see one

    !rocessor at 'a-i'u' utiliEation while others re'ain idle)

    Constructing (ueries that only run in the torage :ngine 'ight sound te'!ting, but

    it$s unrealistic as a design goal) & the !oint o& your 'odel is to !rovide insights that

    solve business !roble's, you$ll need to !rovide (ueries and e-!ressions that 'eet

    business goals, irres!ective o& (uery e-ecution 'echanics) urther'ore, i& you$re

    !rovisioning a server that hosts sel&"service B solutions built and !ublished by other

    !eo!le, (uery synta- construction is !robably beyond your control)

    A CP. with clock s!eeds o& at least 4)= to 7 G9E is your best insurance against(ueries that e-ecute single"threaded in the or'ula :ngine, slow (ueries that are

    dicult o!ti'iEe, or subo!ti'al (uery synta- created by novice 'odel designers)

    Query Load on C0

    n so'e cases, (ueries against a tabular 'odel can o&ten be !ushed down to the

    'ulti"threaded -Ielocity torage :ngine, where each (uery ?ob runs on a se!arate

    core) De!ending on the siEe o& the dataset and the (uery itsel&, you 'ight see

    greater CP. utiliEation, which usually e(uates to better !er&or'ance)

    @ueries 'ost likely to run in the torage :ngine are based on si'!le 'easures that

    can be calculated without having to deco'!ress the data 2rst) & a colu'n needs to

    be deco'!ressed, such as when co'!uting a rank order o& all values, a te'!orary

    table is created in 'e'ory to store and scan the values) This o!eration consu'es

    'e'ory and CP., es!ecially i& the calculation needs to be handled by the or'ula

    :ngine)

    46

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    22/33

    @ueries that run only in the or'ula :ngine, such as an evaluation o& a .M or

    ilter o!eration, are single"threaded and a co''on (uery !er&or'ance bottleneck)

    LT:/ iterates over the entire table to deter'ine which rows to return)

    8ect o" Concurrent Queries on C0

    The nu'ber o& clients re(uesting data &ro' the 'odel will also &actor heavily into

    how 'uch CP. resource you$ll need) As !reviously noted, each (uery 'oves

    through the or'ula :ngine as a single"threaded o!eration) & you have 655 uni(ue

    (ueries running si'ultaneously, you$ll want signi2cantly 'ore cores to handle the

    load)

    rocessing Load on C0

    Processing can take a long ti'e to co'!lete, but is ty!ically not considered to be

    CP. intensive) :ach !rocessing ?ob uses one to two coresJ one core to read the

    data, and another core &or encoding) Given that each !artition within one table 'ust

    be !rocessed se(uentially, the !attern o& a !rocessing o!eration tends to be a s'all

    nu'ber o& cores sustained over a longer !eriod o& ti'e) 9owever, i& !rocessing

    'any tables in !arallel, CP. usage can rise)

    Cores%ow that you have a basic understanding o& how CP. resources are used, let$s

    'ove on to s!eci2c CP. designs 'ost o&ten used to su!!ort 'ediu' to large

    solutions)

    or tabular solutions, the 'ost &re(uently cited CP. designs range &ro' = to 6

    cores) Per&or'ance a!!ears to be better on syste's that have &ewer sockets) or

    e-a'!le, 4 sockets with = &ast cores, as o!!osed to 8 sockets with 8 cores) /ecall

    &ro' the !revious section the i'!ortance o& 'e'ory bandwidth and s!eed in data

    access) & each socket has its own 'e'ory controller, then in theory, we should

    e-!ect that using 'ore cores !er socket oFers better !er&or'ance than 'ore

    sockets with &ewer cores)

    :(ually i'!ortant, !er&or'ance gains tend to level oF when you e-ceed 6 cores)

    Per&or'ance doesn$t degrade as you add 'ore coresJ it ?ust &ails to !roduce the

    sa'e !ercentage increase that you achieved !reviously) This behavior is not s!eci2cto tabular solutionsJ si'ilar outco'es will be encountered when de!loying any

    'e'ory intensive a!!lication on a large 'ulti"core syste')

    The !roble' is that 'e'ory allocations &all behind relative to the threads 'aking

    'e'ory re(uests) Contention arises as all cores to read and write to the sa'e

    shared resource) #!erations beco'e serialiEed, eFectively slowing down server

    !er&or'ance) The end result is that a CP. 'ight be at 75"85N utiliEation yet unable

    44

    http://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possiblehttp://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possiblehttp://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possiblehttp://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possible
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    23/33

    to !er&or' any additional !rocessing due to bottlenecks in the 'e'ory subsyste')

    Cores are idled while waiting &or 'e'ory allocations to catch u!) or 'ore

    in&or'ation about this behavior, see Detecting Me'ory Bandwidth aturation in

    Threaded A!!lications)

    Ot*er considerations0hen evaluating the nu'ber o& cores, consider associated so&tware costs and li'its

    that increase with the core count) n 'ost cases, so&tware licensing &ees go u! with

    the nu'ber o& cores)

    Software licensing fees

    o&tware licensing &ees vary based on the nu'ber o& cores used by @L erver) As

    o& this writing, the use o& 'ore than 45 cores re(uires an :nter!rise edition and a

    !er"core or volu'e licensing o!tion) ee Co'!ute ca!acity li'its by editionto

    deter'ine the 'a-i'u' nu'ber o& cores su!!orted by the @L erver edition

    you$re using)

    Alternatively, you can use the Business ntelligence edition and erver CALs to

    license by the nu'ber o& !eo!le using the server) Check the Microso&t licensing web

    site&or an e-!lanation o& B edition licensing)

    +e aware that running multiple S Server features on the

    same hardware is known to slow system performance as the

    operating system and various services compete for the same

    resources. +efore installing multiple S Server features on the

    same machine, take a look at a server memory calculator that

    S CSS created. It can give you an idea of how well your

    machine supports the relational engine and operating system.

    &he calculator does not account for $nalysis Services, ut if

    you are installing multiple S Server feature components,

    youll at least understand how to con*gure the system to

    provide ade"uate #$% for the relational engine and operating

    system.

    Virtual machine limits and licenses

    Be aware that using virtual 'achines will i'!ose new li'its on the nu'ber o&logical cores you can use) n 9y!er"I on 0indows erver 4564, 'a-i'u' /AM is 4

    TB and 'a-i'u' virtual cores is 8) :arlier versions o& 0indows bring that

    'a-i'u' down to 8 cores) or 'ore in&or'ation, see 'a-i'u' virtual !rocessor

    in&or'ation &or 0indows erver 4564and earlier versions) #ther virtualiEation

    vendors o!erate under si'ilar constraintsJ i& you are using a diFerent IM

    technology check the !roduct web site &or 'a-i'u' li'its)

    47

    http://software.intel.com/en-us/articles/detecting-memory-bandwidth-saturation-in-threaded-applicationshttp://software.intel.com/en-us/articles/detecting-memory-bandwidth-saturation-in-threaded-applicationshttp://msdn.microsoft.com/en-us/library/ms143760.aspxhttp://www.microsoft.com/licensing/about-licensing/sql2012.aspx#tab=3http://www.microsoft.com/licensing/about-licensing/sql2012.aspx#tab=3http://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://technet.microsoft.com/en-us/library/hh833682(d=lightweight,v=ws.11)http://technet.microsoft.com/en-us/library/cc794868(v=WS.10).aspxhttp://software.intel.com/en-us/articles/detecting-memory-bandwidth-saturation-in-threaded-applicationshttp://software.intel.com/en-us/articles/detecting-memory-bandwidth-saturation-in-threaded-applicationshttp://msdn.microsoft.com/en-us/library/ms143760.aspxhttp://www.microsoft.com/licensing/about-licensing/sql2012.aspx#tab=3http://www.microsoft.com/licensing/about-licensing/sql2012.aspx#tab=3http://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://technet.microsoft.com/en-us/library/hh833682(d=lightweight,v=ws.11)http://technet.microsoft.com/en-us/library/cc794868(v=WS.10).aspx
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    24/33

    Onboard Cac*e (L9: L;)Because onboard cache is so 'uch &aster than /AM, syste's that oFer

    !ro!ortionally 'ore L6 and L4 cache are better &or a tabular data access)

    n @L erver 4564 P6, Analysis ervices added cache o!ti'iEations to s!eed u!

    !er&or'ance) To use the onboard cache to its best advantage, data structures

    !roviding (uery results were resiEed s'aller to 'ore easily 2t the siEe constraints o&

    onboard cache) n !articular, having a large L4 cache, which is ty!ically shared by

    all cores on the sa'e socket, has !roven to be es!ecially hel!&ul in boosting (uery

    !er&or'ance &or a tabular solutions)

    The L4 cache is valuable during table scans i)e), when caches are 'issed because

    the iteration over 'e'ory co'!letes sooner when data is &ound in L4 cache) As the

    o!erating syste' accesses the 2rst &ew bytes o& a block o& data, it can &etch e-tra

    bytes into the L4 cache, and as the scan !roceeds to bytes &urther in the block, itwill hit the' in the L4 cache rather than /AM) Also, (ueries can bene2t &ro' the L4

    cache when doing looku!s o& co''on dictionary values and relationshi!s)

    If you are familiar with how $nalysis Services manages caching

    for multidimensional solutions, caching ehavior for a taular

    solutions is consideraly di/erent. &aular solutions use two

    types of cache0 a Storage 1ngine cache, and a cell level cache

    created y %23 "ueries. Cell-level caching is done y the

    4ormula 1ngine. Its the same caching used for

    multidimensional solutions.

    Storage 1ngine caches are created during "uery e'ecution.

    &he 4ormula 1ngine will sometimes *re one or more Storage

    1ngine "ueries, which are then cached y the Storage 1ngine.

    If a client e'ecutes the same "uery multiple times, "uery

    results are returned from the cache, eliminating the Storage

    1ngine portion of "uery e'ecution. +y default, server

    con*guration properties specify 567 Storage 1ngine cache

    slots. 8ou can change this setting in the msmdsrv.ini *le if you

    get too many cache misses.

    In terms of hardware caching, the operating system fully

    controls which data structures are stored in onoard cache or

    #$%, with no intervention from $nalysis Services. In terms of

    solution architecture, what this means to you is that there is no

    speci*c action or server recon*guration on your part that can

    change hardware caching ehavior. 2ata structures will either

    48

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    25/33

    e placed in onoard cache or in #$%, depending on resource

    availaility and competition from other applications using the

    same resources.

    Ti$!1ou can download CP."] utility &ro' CP.D)co'to deter'ine L6, L4, and L7cache on your co'!uter)

    N0'A.nlike its 'ultidi'ensional M#LAP counter!art, a tabular solution is not %.MA

    aware) %either the or'ula :ngine nor the torage :ngine will 'odi&y e-ecution

    when running on %.MA 'achines)

    This 'eans that i& you have a %.MA 'achine, you 'ight run into worse

    !er&or'ance than i& you used a non"%.MA 'achine with the sa'e nu'ber o& cores)Ty!ically, this only ha!!ens on syste's having 'ore than 8 %.MA nodes)

    Per&or'ance degradation occurs when 'e'ory access has to traverse %.MA nodes

    i)e), a thread or instruction e-ecuting on one node needs so'ething that is

    e-ecuting on another node) 0hen choosing between syste's that have the sa'e

    nu'ber o& cores and /AM, !ick a non"%.MA syste' i& you can)

    To oFset !er&or'ance degradation, consider setting !rocessor anity on 9y!er"I

    IMs, and then installing Analysis ervices tabular instances on each IM) or 'ore

    in&or'ation about this techni(ue, see .sing Tabular Models in a Large"scale

    Co''ercial olutionand orcing %.MA %ode anity &or Analysis ervices Tabulardatabases)

    'onitor C0 0sage.sing Task Manager, you can get an overall sense o& CP. utiliEation during

    !rocessing and (uery o!erations) 0hile Task Manager 'ight not be the best tool to

    use &or !er&or'ance tuning, it should be ade(uate &or assessing the CP.

    re(uire'ents o& your tabular solution) 0ith Task Manager started, run a

    re!resentative sa'!le o& !rocessing and (uery workloads to see how the syste'

    !er&or's)

    or e-a'!le, the &ollowing screenshot shows CP. usage while e-ecuting a rocess

    ullon Contoso/etailD0) Tables are 'ostly !rocessed in se(uence, and as you can

    see, overall CP. usage is relatively 'odest)

    4;

    http://www.cpuid.com/softwares/cpu-z.htmlhttp://msdn.microsoft.com/en-us/library/dn751533.aspxhttp://msdn.microsoft.com/en-us/library/dn751533.aspxhttp://blogs.msdn.com/b/sqlcat/archive/2013/11/05/forcing-numa-node-affinity-for-analysis-services-tabular-databases.aspxhttp://blogs.msdn.com/b/sqlcat/archive/2013/11/05/forcing-numa-node-affinity-for-analysis-services-tabular-databases.aspxhttp://www.cpuid.com/softwares/cpu-z.htmlhttp://msdn.microsoft.com/en-us/library/dn751533.aspxhttp://msdn.microsoft.com/en-us/library/dn751533.aspxhttp://blogs.msdn.com/b/sqlcat/archive/2013/11/05/forcing-numa-node-affinity-for-analysis-services-tabular-databases.aspxhttp://blogs.msdn.com/b/sqlcat/archive/2013/11/05/forcing-numa-node-affinity-for-analysis-services-tabular-databases.aspx
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    26/33

    C0 usage during .uery e/ecution

    @ueries that are !ushed to the torage :ngine co'!lete 'uch sooner than those

    that s!end additional cycles in the or'ula :ngine) 1ou can identi&y which (ueries

    are !ushed to the torage :ngine by using @L erver Pro2ler) 0hen setting u! a

    new trace, click S*ow all events) :vents you will want to select a!!ear under

    @uery ProcessingH 7ertia. S Query 5egin, 7ertia. S Query Cac*e 'atc*,

    7ertia. S Query nd)

    4

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    27/33

    0hen you run the trace, you can 'onitor (uery e-ecution to deter'ine (uery

    duration and e-ecution) @ueries !ushed to the torage :ngine are indicated through

    the event na'e) A line has IertiPa( in the na'e tells you that !art o& the e-!ression

    has been !ushed down to -Ielocity torage :ngine)

    As you 'onitor (uery e-ecution to understand hardware re(uire'ents, take the

    ti'e to identi&y any (ueries that could bene2t &ro' o!ti'iEation) @ueries that take

    longer than e-!ected will not only &rustrate users, it will arti2cially and

    unnecessarily raise the level o& syste' resources re(uired by your solution)

    Although DA (uery o!ti'iEation and DA (uery !lan analysis is beyond the sco!e

    o& this guide, there are links at the end o& this docu'ent that !rovide 'ore

    in&or'ation)

    -ey ointsCP. resources are heavily used &or (ueries and so'e calculations) i'!le

    'athe'atical co'!utations based on a single colu'n &or e-a'!le, su''ing or

    averaging a nu'eric colu'n are !ushed to the torage :ngine and e-ecuted as a

    'ulti"threaded o!eration on 'ulti!le cores) n contrast, a calculation that ranks or

    4

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    28/33

    sorts values re(uires the single"threaded or'ula :ngine, using ?ust one core and

    !ossibly lots o& 'e'ory de!ending on the siEe o& the te'!orary table)

    ncre'ental !er&or'ance gains tend to level oF a&ter 6 logical cores) Although a

    greater nu'ber o& cores 74 or 8 will de2nitely increase ca!acity, you won$t see

    the sa'e gain in !er&or'ance increase when going beyond 6 cores)

    As A Tabular is not %.MA aware, avoid %.MA unless you need it &or other

    a!!lications that run on the sa'e hardware) There will be longer wait ti'es i& a

    re(uest has to traverse %.MA nodes during a read o!eration)

    inally, when you$ve narrowed your server selection to a &ew choices, take a look at

    the onboard cache and choose the syste' that oFers the larger onboard cache)

    @uery cache o!ti'iEations in the tabular engine target the L6 and L4 cache) 1ou

    gain the 'ost bene2t &ro' those o!ti'iEations on a syste' that oFers 'ore

    onboard cache)

    #is+ I

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    29/33

    Hardware Con3guration /a%$les

    This section !rovides a &ew starter e-a'!les o& hardware con2gurations o& e-isting

    de!loy'ents, along with additional notes about the !roduction environ'ent) #ver

    ti'e, we !lan to u!date this table with 'ore e-a'!les that de'onstrate thebreadth o& de!loy'ent that include in"'e'ory databases)

    De!loy'ents described in the &ollowing table range &ro' dedicated servers to 'ulti"

    tenant servers using IM technology running on newer and older hardware) or each

    de!loy'ent, solution architects re!orted above average !er&or'ance on the

    hardware used to run the 'odel)

    Model Size System Information RAM ther !etails

    85 GB Dell Power:dge

    /=65, dual ="core

    CP.

    4; GB erver runs other @L erver

    &eatures as well, including the

    relational engine and Analysiservices in 'ultidi'ensional

    'ode)

    Processing &or the tabular solution

    runs on the sa'e server)

    rocessullon a weekly basis,

    and rocess0$datenightly)85 GB 9ewlett"Packard

    ProLiant DL;=5 4

    6 TB Multi"tenant architecture

    su!!orting at least 8 virtual

    'achines will run on the two

    syste's, hosting Analysis

    ervices in tabular 'ode, Analysis

    ervices in 'ultidi'ensional

    'ode, harePoint with /e!orting

    ervices Power Iiew, and a @L

    erver relational database engine)

    Decisions about how to allocate

    'e'ory across all IMs are still

    !ending)

    olution design consists o& several

    s'aller tabular 'odels, about 65

    total, consu'ing around 85 GB o&

    'e'ory all together)

    8 GB 9ewlett"Packard > GB yste' is !ur!osely oversiEed to

    4>

  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    30/33

    ProLiant BL85 Gcool"now"we"have"a"

    calculator"&or"2nding"out"a"'a-"server"'e'ory"value)as!-

    htt!Hblogs)'sdn)co'bs(lsakthi!'a-"server"'e'ory"calculator)as!-

    Load Testing

    video #!ti'iEing 1our B e'antic Model &or Per&or'ance and cale

    video Load Testing Analysis ervices

    Can your B solution scale[

    htt!Hwww)to'shardware)co'reviewsra'"s!eed"tests,6=558o!ti'iEe"su''ariEe"with"

    addcolu'ns"in"da-"ssas"tabular"da-"!ower!ivot)as!-

    Did this aer hel you! "lease #ive us your $eedbac%& Tell us on a scale o$ 1 'oor( to )

    'e*cellent(, ho+ +ould you rate this aer and +hy have you #iven it this ratin#! or e*amle-

    Are you ratin# it hi#h due to havin# #ood e*amles, e*cellent screen shots, clear +ritin#,

    or another reason!

    Are you ratin# it lo+ due to oor e*amles, $u..y screen shots, or unclear +ritin#!

    This $eedbac% +ill hel us imrove the /uality o$ +hite aers +e release&

    74

    http://office.microsoft.com/en-us/excel-help/create-a-memory-efficient-data-model-using-excel-2013-and-the-powerpivot-add-in-HA103981538.aspxhttp://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://blogs.msdn.com/b/sqlsakthi/p/max-server-memory-calculator.aspxhttp://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DBI414http://sqlbits.com/Sessions/Event10/Load_Testing_Analysis_Serviceshttp://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DBI330http://www.tomshardware.com/reviews/ram-speed-tests,1807-2.htmlhttp://mdxdax.blogspot.com/2011/12/dax-query-plan-part-1-introduction.htmlhttp://mdxdax.blogspot.com/2012/01/dax-query-plan-part-2-operator.htmlhttp://mdxdax.blogspot.com/2012/03/dax-query-plan-part-3-vertipaq.htmlhttp://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possiblehttp://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possiblehttp://sqlblog.com/blogs/marco_russo/archive/2011/02/07/powerpivot-filter-condition-optimizations.aspxhttp://sqlblog.com/blogs/marco_russo/archive/2011/02/07/powerpivot-filter-condition-optimizations.aspxhttp://www.sqlbi.com/articles/optimize-many-to-many-calculation-in-dax-with-summarize-and-cross-table-filtering/http://www.sqlbi.com/articles/optimize-many-to-many-calculation-in-dax-with-summarize-and-cross-table-filtering/http://sqlblog.com/blogs/marco_russo/archive/2012/09/04/optimize-summarize-with-addcolumns-in-dax-ssas-tabular-dax-powerpivot.aspxhttp://sqlblog.com/blogs/marco_russo/archive/2012/09/04/optimize-summarize-with-addcolumns-in-dax-ssas-tabular-dax-powerpivot.aspxhttp://office.microsoft.com/en-us/excel-help/create-a-memory-efficient-data-model-using-excel-2013-and-the-powerpivot-add-in-HA103981538.aspxhttp://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://blogs.msdn.com/b/sqlsakthi/archive/2012/05/19/cool-now-we-have-a-calculator-for-finding-out-a-max-server-memory-value.aspxhttp://blogs.msdn.com/b/sqlsakthi/p/max-server-memory-calculator.aspxhttp://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DBI414http://sqlbits.com/Sessions/Event10/Load_Testing_Analysis_Serviceshttp://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DBI330http://www.tomshardware.com/reviews/ram-speed-tests,1807-2.htmlhttp://mdxdax.blogspot.com/2011/12/dax-query-plan-part-1-introduction.htmlhttp://mdxdax.blogspot.com/2012/01/dax-query-plan-part-2-operator.htmlhttp://mdxdax.blogspot.com/2012/03/dax-query-plan-part-3-vertipaq.htmlhttp://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possiblehttp://www.powerpivotblog.nl/tune-your-powerpivot-dax-query-dont-use-the-entire-table-in-a-filter-and-replace-sumx-if-possiblehttp://sqlblog.com/blogs/marco_russo/archive/2011/02/07/powerpivot-filter-condition-optimizations.aspxhttp://sqlblog.com/blogs/marco_russo/archive/2011/02/07/powerpivot-filter-condition-optimizations.aspxhttp://www.sqlbi.com/articles/optimize-many-to-many-calculation-in-dax-with-summarize-and-cross-table-filtering/http://www.sqlbi.com/articles/optimize-many-to-many-calculation-in-dax-with-summarize-and-cross-table-filtering/http://sqlblog.com/blogs/marco_russo/archive/2012/09/04/optimize-summarize-with-addcolumns-in-dax-ssas-tabular-dax-powerpivot.aspxhttp://sqlblog.com/blogs/marco_russo/archive/2012/09/04/optimize-summarize-with-addcolumns-in-dax-ssas-tabular-dax-powerpivot.aspx
  • 7/26/2019 SSAS_HardwareSizingTabularSolutions

    33/33

    Send $eedbac%&

    mailto:[email protected]?subject=White%20Paper%20Feedback:%20Hardware%20Sizing%20of%20Tabular%20Solutionsmailto:[email protected]?subject=White%20Paper%20Feedback:%20Hardware%20Sizing%20of%20Tabular%20Solutions