Question related to dynami calc
Hi all,
I have a question related to dynamic calc members, I read in the dbag saying , it is not possible to add more than 100 members as a children under a
dynamic calc member...is it right even with 9 and 11 versions.. What are the options we have if we really want to add ....????? I am curious to know about this....
Thanks
When you set a member to dynamic calculation (for aggreagtion purposes), it has to look at all of the children in order to calculate. If it is on a sparse dimension, it has to bring multiple blocks into memory to do the calculation. If the dimension is dense, it on;y brings in the single block which is much quicker. as for increasing the block size, If you need the summarization, you have not changed the block size at all. You would have the member regardless. If it is dynamic, you will see the block smaller than if it stored data, but the logical block size (the memory it takes) will be the same size regardless because Essbase expands the block in memory to do the calculations.
This is the same rational as to why we don't want dynamic calculation on sparse dimensions unless it is comfined to one or two children. The reading of multiple blocks can be very time consuming
Similar Messages
-
Problem at calculation time, when using Dynamic Calc measures
Hello,<BR><BR>We are using Essabse v6.5 and we want to upgrade to v7.1.<BR>we are performing some tests, in order to check that the Cubes we have created in 6.5 are working properly in v7.1.<BR><BR>the problem that we are experiencing is that the calculation time for the cubes that have dynamic calc members has exploaded to 10 times more, compared to what it took at version 6.5.<BR><BR>Do you have any idea why this happens. (also we are still using the old client "Application Manager")<BR><BR>Furhermore, I have set up 2 cubes that are the same, except the 1st has dynamic calc memebers, whereas the 2ns has not.<BR>I perform calcualtions with the SET MSG DETAIL; and receive the following:<BR>CUBE (A) with Dynamic Calc<BR>Total Block Created: [4.3720e+03] Blocks <BR>Sparse Calculations: [8.0620e+03] Writes and [2.5338e+05] Reads <BR>Dense Calculations: [2.8000e+01] Writes and [2.8000e+01] Reads <BR>Sparse Calculations: [6.0202e+06] Cells <BR>Dense Calculations: [1.1476e+06] Cells <BR><BR>CUBE (B) withOUT Dynamic Calc<BR>Total Block Created: [4.3720e+03] Blocks <BR>Sparse Calculations: [4.3720e+03] Writes and [3.5887e+04] Reads <BR>Dense Calculations: [2.8000e+01] Writes and [2.8000e+01] Reads <BR>Sparse Calculations: [6.0202e+06] Cells <BR>Dense Calculations: [1.1476e+06] Cells <BR><BR>Question: Why does Cube (A) has more Sparse Calculations than Cube(B) ????<BR><BR><BR>thanx
Yes, all the settings were exactly the same. See following:<BR>- Data Cache (note: we are NOT using the Data File Cache) <BR>- Index Cache<BR>- Index Page<BR>- Commit Block Interval<BR>- Cache memory Locking<BR>- Access Mode = buffered IO<BR>- Data Compression = Bit-Map encoding<BR>- Two Pass Calculatino = ON<BR>- Aggregate Missing Values = ON<BR>- CFG file<BR><BR><BR>Is there any new settings in 7.1 that I must configure?<BR>Is there any settings that I cannot see through the old client Application Manager, which is important? Must I install the new client in order to be able to configure correctly the Outline/Cube?<BR><BR>Thnkx<BR><BR>
-
Substitution variable in Dynamic Calc
Hi,
We are using Essbase 9.3.0 on Windows and are seeing this behavior in our BSO cubes.
When we use a substitution variable in a Scenario member with Dynamic Calc (not store) setting, after the first retrieve, if we change the value of the substitution variable, the subsequent retrieves do not generate updated results.
I suspect that the value is cached in the Dynamic Calculator Cache, and for some reason does not track changes in Substitution Variables to know that the value must be re-calculated. Here is what I see in the Application log -
[Mon Aug 09 10:31:51 2010]Local/App1/db1/user1/Info(1020055)
Spreadsheet Extractor Elapsed Time : [0.032] seconds
[Mon Aug 09 10:31:51 2010]Local/App1/db1/user1/Info(1020082)
Spreadsheet Extractor Big Block Allocs -- Dyn.Calc.Cache : [4] non-Dyn.Calc.Cache : [0]
This says that 4 blocks were used from the Dynamic Calc Cache, and none from outside it. Does this mean that existing blocks were read and not re-populated?
If I make a change to the formula, wherein I hard code the value of the sub var and perform the retrieve, then the value is updated. Subsequent retrieves, after restoring the formula still returns the updated results.
My question is, is this expected behavior? Or am I doing something /reading something wrong?
Thanks,
Andywhen a subst variable value is changed... to use the value in member formula or calc script, the concerned application has to be restarted...
- Krish -
Essbase : Order evalution with dynamic Calc : Account x Scenario
Hi everybody,
I'm trying to calculate a variation N / N-1 in % for All Accounts.
basically : %/ N-1 = (Actual- Actual N-1) / Actual N-1 - I create a scenario.
I create a scenario %_N_1 which is Dynamic Calc.
"%_N_1" = ("ACTUAL" - @MDSHIFT( "ACTUAL" , -1 , "Year" , ))/@MDSHIFT( "ACTUAL" , -1 , "Year" , )*100;
But with agregated Accounts (which are dynamic calc also), Essbase sums the % ... which is wrong !!!
Question : How could we set the priority between Scenario and Account for Dynamic Calculation.
regards,
ps : I want not to put this calculation in Financial Reporting, because there are a lot of reports that use this measure : %_N_1 !Two-pass Calc
You should basically put this on every formula that is a % to make sure it happens after the aggregation stuff.
It get's tricky if you did two-pass on two pass but I believe you aren't using two-pass so you should be good to go -
Problem with a calc involving @MDSHIFT and Dynamic Calc
Hi all,
I have a problem with the calculation of a member in a calc script. The formula of this member is :
"R70100"
IF(@ISMBR("M01"))
("T_008"->"Cumul"->"HT"+"T_003"->"Cumul"->"HT")*"AVCT_PR" - @MDSHIFT("R70100" -> "Cumul" -> "HT" -> "M12", -1, "Year", );
ELSE
("T_008"->"Cumul"->"HT"+"T_003"->"Cumul"->"HT")*"AVCT_PR" - @MDSHIFT("R70100" -> "Cumul" -> "HT", -1, "Period", );
ENDIF
- R70100 is a member of a dense dimension.
- T_008, T_003 and AVCT_PR are spare and stored.
- "Cumul" is a dynamic member which allow us to calculate cumulative from monthly.
- Time is split into two dimensions, Period and Year.
The problem is that the @MDSHIFT doesn't seems to work with the dynamic calc as the monthly result is the cumulative correct value. I didn't know what is wrong BUT each time I launch the script, values are good for one more month.
After one run, for example, I obtained this result :
!http://zenon.apartia.fr/stuff/200910070001.GIF!
Two run later, here are the news values :
!http://zenon.apartia.fr/stuff/200910070002.GIF!
Any idea on what going on and how to correct it ? Thanks !
FrédéricA couple of questions for you:
1) Do you need the overhead of @MDSHIFT when you are only moving in one dimension? Wouldn't @PRIOR have been a lot easier? At least this is true for the ELSE condition.
2) Could you post just the results of the @MDSHIFT calculation so we (okay, this may be just for me, it's still breakfast time here and not enough coffee has been ingested yet to read a spreadsheet without recourse to the formulas) can better see the impact?
3) Have you tried using your code against a non-dynamic member? Does it make a difference?
Regards,
Cameron Lackpour -
All,
Is it better to have a sparse store member and calculating in Calcscript/Rule or sparse dynmic calc member with formula?
Thank YouHere's a little background on why sparse dynamic calcs can sometimes (but not always) be bad for retrieval performance:
- Essbase stores data in one of two types of files - the Index file and the Page file. (there can be many of each type of file, depending on how much data is stored in your cube)
- The index file stores all of the combinations of sparse members (where there is data). Think of each sparse dimension as a column in the index file.
- The page file contains "blocks" that are made up of your dense dimension members. Each "cell" in a block is 8 bytes. (a cell being a single combination of members from each dense dimension)
- Each row in your index file points to one and only one block. (this is why you need one member from every dimension to get to a data value)
So let's say we have three members in one of our sparse dimensions. For the sake of simplicity, let's say this is the only sparse dimension in the cube.
- Member "A" is stored.
- Member "B" is stored.
- Member "C" is a dynamic calc equal to "A" - "B".
Question - if you retrieve on member "C", how many blocks does Essbase have to pull into memory? 2 (the blocks for A and B), plus it has to create a block in memory for member "C". (at least I think it creates a block in memory . . . . ) Either way, that's a lot of I/O, relatively speaking.
If "C" were calculated in batch and stored, the same retrievel would only have to pull a single block into memory - the stored block for C. This is less I/O.
So why are some dynamic sparse calcs bad and others aren't? It all comes down to how many blocks the retrieval forces Essbase to pull into memory. (FYI this "memory" is really your database caches)
This is why sparse dynamic calcs like variance scenarios are common. A sparse dynamic calc that compares Actual to Budget doesn't pull a lot of blocks into memory. However, if you set a sparse parent to be dynamic, and it had 100 children, this would be pretty bad for performance.
If you can visualize this concept, you can performance tune a BSO cube. It's all about I/O.
Hope this helps,
- Jake -
Dynamic Calc Member in formula not working
Hello,
I am having an issue trying to calculate a dynamic calc member in a calc script.
Lets say this is our outline:
OC_GRANDPA (Dynamic Calc)
OC_PART1 (Dynamic Calc) (+)
Child1 (Calculated at top of calc script - STORED member) (+)
Child2 (Calculated at top of calc script - STORED member) (+)
OC_PART2 (Calculated in middle) of calc script - STORED member [NO CHILDREN] (+)
I need to use OC_GRANDPA in a formula
Final = OC_GRANDPA * .05 Rate;
It is giving me 0 when I run the calc the first time and works if i run it a second time. Is this issue two dynamic calc members? I tried making them twopass and no luck either. I really do not want to make them stored then do a calc dim (accounts) in my calc script. Any other ideas?? If I make my formula use the level 0 members and not the OC_GRANDPA it works but that is not good coding in case I added more Children Id like to automatically pick up. PLEASE HELP!!!! Thanks!Thanks Cameron! I think I actually posted my mini hierarchy incorrectly as I am trying to put a formula on a different member under grandpa that has no children. Regardless it kept coming up zero -- all of the level 0 members are also calculated in the script. After much trial and error I ended up using the calc script for fomulas for the level 0's then I put a member formula on the member that I could not get to calculate in the script and also made it two pass. So then my calc script has the formulas for the level 0, a Calc Dim (Accounts) to perform the agg and calc the member formula then a calc two pass to calc yet another formula that uses this member.
I do however now have a different question regarding member formulas - do you know if they calculate top down or bottom up? -
Input data into dynamic calc in Planning forms
Hi guys,
Have someone tried to combine these two requirements:
1. to have upper level members dynamic calc
2. to give users the ability to input data into those upper level members through Planning forms.
I need to do that in order to pass inputted values into HBR, and allocate those values to the leaf level across multiple dimensions. I need those members dynamic calc because otherwise I would need to aggregate data across 7 dimensions and that takes too long. Those allocations are suposed to happen constantly and are the main purpose of application.
I know you can have dummy stored members that correspond the uper level dynamic members, but then the user will have input forms without current data and will be required to check reports/forms with dynamic calc members prior to updating data.
I wonder if it is a realistic task to change jsp files that generate those forms, so that data can be inputed into the form, but instead of passing it to Essbase cube to send it to relational database.
P.S.
This is related to the thread I opened about optimizing recalculation time:
Recalculatiion takes much longer than initial calculation
I received a lot of valuable advices that would definitely work in other situations, but in my case they seem to contradict either user concurrent access or performance requirements.
Thanks a lot!
DmitryHi Glenn,
I think i found a workaround for this, or may be i am missing something. I will replicate my hierarchies so that one hierarchy will have uper level stored members, and another dynamic calc. Once user loads the form it will run on-load script that will copy data from corresponding dynamic calc to stored slice. The updated data will be alocated to the leaf level, but will never be aggregated. Since reporting is done from ASO cube i only care about the leaf level and current selection in the form.
Thanks! -
Dynamic calc not calcing!
I have a number of simple dynamic calc members, all of the form:Measure per Issue (Dynamic Calc) Measure (Shared Member) (+) Issues (Shared Member) (/)These worked fine until this morning, when two of them started returning #MISSING. If I drill down on them, the currect values for Measure and Issues are showing, but no calculation is taking place.After trying a number of things, I tried recreating them - and the copies worked fine.When I deleted the originals, it took an age to restructure the database, suggesting that they had some how become stored members, as usually editing the Dynamic Calc memebers takes only seconds to restructure.Running 6.0.Anyone have any idea what might have caused this?
What patch of 6.0 are you running? That is a relatively "old" version at this point, and there may be some outstanding issues related to this.Regards,Jade--------------------------------Jade ColeSenior Business Intelligence ConsultantClarity [email protected] ---Message Posted by sanderton ??3/21/02 05:00---I have a number of simple dynamic calc members, all of the form:Measure per Issue (Dynamic Calc) Measure (Shared Member) (+) Issues (Shared Member) (/)These worked fine until this morning, when two of them started returning #MISSING. If I drill down on them, the currect values for Measure and Issues are showing, but no calculation is taking place.After trying a number of things, I tried recreating them - and the copies worked fine.When I deleted the originals, it took an age to restructure the database, suggesting that they had some how become stored members, as usually editing the Dynamic Calc memebers takes only seconds to restructure.Running 6.0.Anyone have any idea what might have caused this?
-
Dynamic Calc member has more than 100 children
In my db, I've a dynamic calc member, in say hierarchy Accounts, that has more than 100 members under it (children).
I'm using MaxL scripts to update the Accounts hierarchy i.e. adding new members, tagging UDA's etc.
However, the MaxL command is erroring out with a Network Error: Cannot Recieve/Send data. I understand if I try doing the update via
EAS and try to save the outline, it gives me the more than 100 children warning but still allows me to save it but via MaxL I cannot force
it to do so.
This is just a warning and shouldn't MaxL still save the outline? Is there something else that am missing or is there any solution for this issue.
This is a Sparse dimension. More members will be added to the hierarchy monthly, thereby not reducing the count below hundred.
Any help/advise is much appreciated. Thanks.
@deepakI am envisioning an entire sparse Accounts dimension with all of the upper levels dynamic. If it is like most accounts dimensions I have seen it has a lot of level zero members and a lot of parent rollups. looking at top level members could be very slow (relative to if they were calculated or dense). We have all done interesting things in our cubes to gain some performance measure trading off calculation and retrieval performance. Doing something like this is an area where a testing is crital
-
Trouble with Dynamic Calc Scenario
We have built a dynamic Calc scenario in our first 11.1.2 Planning environment that works fine in web forms; Forecast vs Prior Forecast Version. However, when we created our second environment the dyanmic scenario is now causing errors with the web forms. I am getting the generic Data form is invalid, check log for details.
I have isolated the problem to this one scenario. We have three other dynamic scenarios on the form and they work fine.
The formula on the scenario below which is not working does reference another dynamic scenario (Prior Forecast Version, which is working).
Forecast vs Prior Forecast (Scenario not working)
"Forecast" - "Prior Forecast Version";
Prior Forecast Version works fine and here is that formula:
if (@ISMBR("Final"))
"Forecast"->&FcstPF;
elseif (@ISMBR("Final_Jul"))
"Budget"->"Final";
else
@PRIOR("Forecast", 1, @RELATIVE("Version", 0));
endif;
The Prior Forecast Version is before the Forecast vs Prior Forecast in the outline.
I have checked the formulas and settings on each one and they are the same in both environments. We used LCM to build the second environment.
Any suggestions on where to look next?
I am not finding anything in the planning logs that seems to help, do I need to turn on auditing first to get information from the planning logs when you get the generic Check Planning Log for Details message?
Thanks.I haven't check the essbase log but will do so. I thought I checked the correct planning log, but looking at the path I was using, I might have been looking for the log in the wrong place. I was using the path from the troubleshooting guide but it was the diagnostic logs and maybe that is only the correct one when we have auditing turned on.
Help on the path to the correct planning log would be great. I was looking in middleware/user_projects/epmsystem1/diagnostics/logs
Thanks. -
CalcLockBlock Error and Dynamic Calc Cache
I keep getting the "Dynamic calc processor cannot allocate more than [xxx] blocks from the heap" error. I have the Data Cache cranked up to about 700 MB, and the CalcLockBlock set at 1000, the block size is 296K.The query which fails returns the following counts for block allocations.Dyn.Calc.Cache : [312] Non-Dyn.Calc.Cache : [513]My question is this, does Essbase return the CalcLockBlock error if it runs out of DCC memory as well? I'd try testing it, but I can't modify essbase.cfg and reboot until the evenings.There is also more thing which I'm curious about it.... This query I'm running invloves a scenario dimension which is sparse. When I run it using only 'Actuals', the result is fast and the block count is:Dyn.Calc.Cache : [45] Non-Dyn.Calc.Cache : [0]If I add 'Budget', the results are linear as expected.Dyn.Calc.Cache : [90] Non-Dyn.Calc.Cache : [0]When I add the variance scenario (a dynamic two pass) for Actual and Budget is when the block count explodes. (numbers at the top). Why does the the calculation engine end up loading so many blocks for this variance calculation?Thanks in advance for any help!!-Ross
Not sure. What does support say? Sometimes I've found lowering the settings rela low works as well, depending on the circumstances.---------Go to your test server and try this. Create a new dimension with one member (Values). Make it dense. Then create another member in that dimension "Budget Values". Give it a formula of [Values->"Budget" ;] and make it dynamic calc.Then create another member "Variance". Give it a formula of [@Var( "Budget Values", Values ) ;] and make it dynamic calc.Because this dimension has only one stored member it is essentially not a dimension, but it does allow you to increase your analysis capabilities through dynamic calcs without adding to calc time.------------------------------
-
Tagging Dynamic Calc using scripts
Hi,<BR><BR>I frequently need to tag certain members within a dimension as Dynamic Calc. Is there a script, an ESSCMD type of script which I can use to make it easy? Right now I constantly have to use Administration console to do so.<BR><BR>Thanks,<BR>Hank
Sorry, but I don't think that you can do what you want via scripts.<BR><BR>Setting a member to be dynamic calc would involve either a Dense or Sparse restructure because you are altering the storage.<BR><BR>If you think about it, it would not be possible to do this via a calc script, because part way through (when it got to the part you wanted to change) it would have to do a restructure, and then it would have to resume the calc.<BR><BR>Question - why would you frequently need to change a member to be Dynamically calculated ?
-
can someone plz confirm me that how i can change or update the security questions related to my apple id? as i have been never put them since i create my apple id but now due to some security reasons its asking me again and again the answers. i am unable to go through the process. thanks.
Some Solutions for Resetting Forgotten Security Questions: Apple Support Communities
-
Error: 1012704 Dynamic Calc processor cannot lock more than [25] ESM blocks
Dear All,
I get the Following Error in the Essbase console when I try to Execute any CalcScript.
Error: 1012704 Dynamic Calc processor cannot lock more than [25] ESM blocks during the calculation, please increase CalcLockBlock setting and then retry(a small data cache setting could also cause this problem, please check the data cache size setting)_+
Please find the detailed output of the Statics of my Planning Applications Database and outline.
please help guys........
GetDbStats:
-------Statistics of AWRGPLAN:Plan1 -------
Dimension Name Type Declared Size Actual Size
===================================================================
HSP_Rates SPARSE 11 11
Account DENSE 602 420
Period DENSE 19 19
Year SPARSE 31 31
Scenario SPARSE 6 6
Version SPARSE 4 4
Currency SPARSE 10 10
Entity SPARSE 28 18
Departments SPARSE 165 119
ICP SPARSE 80 74
LoB SPARSE 396 344
Locations SPARSE 57 35
View SPARSE 5 5
Number of dimensions : 13
Declared Block Size : 11438
Actual Block Size : 7980
Declared Maximum Blocks : 3.41379650304E+015
Actual Maximum Blocks : 1.87262635317E+015
Number of Non Missing Leaf Blocks : 10664
Number of Non Missing Non Leaf Blocks : 2326
Number of Total Blocks : 12990
Index Type : B+ TREE
Average Block Density : 0.01503759
Average Sparse Density : 6.936782E-010
Block Compression Ratio : 0.001449493
Average Clustering Ratio : 0.3333527
Average Fragmentation Quotient : 19.3336
Free Space Recovery is Needed : No
Estimated Bytes of Recoverable Free Space : 0
GetDbInfo:
----- Database Information -----
Name : Plan1
Application Name : AWRGPLAN
Database Type : NORMAL
Status : Loaded
Elapsed Db Time : 00:00:05:00
Users Connected : 2
Blocks Locked : 0
Dimensions : 13
Data Status : Data has been modified
since last calculation.
Data File Cache Size Setting : 0
Current Data File Cache Size : 0
Data Cache Size Setting : 3128160
Current Data Cache Size : 3128160
Index Cache Size Setting : 1048576
Current Index Cache Size : 1048576
Index Page Size Setting : 8192
Current Index Page Size : 8192
Cache Memory Locking : Disabled
Database State : Read-write
Data Compression on Disk : Yes
Data Compression Type : BitMap Compression
Retrieval Buffer Size (in K) : 10
Retrieval Sort Buffer Size (in K) : 10
Isolation Level : Uncommitted Access
Pre Image Access : No
Time Out : Never
Number of blocks modified before internal commit : 3000
Number of rows to data load before internal commit : 0
Number of disk volume definitions : 0
Currency Info
Currency Country Dimension Member : Entity
Currency Time Dimension Member : Period
Currency Category Dimension Member : Account
Currency Type Dimension Member :
Currency Partition Member :
Request Info
Request Type : Data Load
User Name : admin@Native Directory
Start Time : Mon Aug 15 18:35:51 2011
End Time : Mon Aug 15 18:35:51 2011
Request Type : Customized Calculation
User Name : 6236@Native Directory
Start Time : Tue Aug 16 09:44:10 2011
End Time : Tue Aug 16 09:44:12 2011
Request Type : Outline Update
User Name : admin@Native Directory
Start Time : Tue Aug 16 10:50:02 2011
End Time : Tue Aug 16 10:50:02 2011
ListFiles:
File Type
Valid Choices: 1) Index 2) Data 3) Index|Data
>>Currently>> 3) Index|Data
Application Name: AWRGPLAN
Database Name: Plan1
----- Index File Information -----
Index File Count: 1
File 1:
File Name: C:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\APP\AWRGPLAN\Plan1\ess00001.ind
File Type: INDEX
File Number: 1 of 1
File Size: 8,024 KB (8,216,576 bytes)
File Opened: Y
Index File Size Total: 8,024 KB (8,216,576 bytes)
----- Data File Information -----
Data File Count: 1
File 1:
File Name: C:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\APP\AWRGPLAN\Plan1\ess00001.pag
File Type: DATA
File Number: 1 of 1
File Size: 1,397 KB (1,430,086 bytes)
File Opened: Y
Data File Size Total: 1,397 KB (1,430,086 bytes)
File Size Grand Total: 9,421 KB (9,646,662 bytes)
GetAppInfo:
-------Application Info-------
Name : AWRGPLAN
Server Name : GITSHYPT01:1423
App type : Non-unicode mode
Application Locale : English_UnitedStates.Latin1@Binary
Status : Loaded
Elapsed App Time : 00:00:05:24
Users Connected : 2
Data Storage Type : Multidimensional Data Storage
Number of DBs : 3
List of Databases
Database (0) : Plan1
Database (1) : Plan2
Database (2) : Plan3ESM Block Issue
Cheers..!!
Maybe you are looking for
-
I need to add header in the WAD
Hi All, I have a requirement of adding header in WAD/Bex,were there are 8 Columns to be displayed in the report as below Response time Resolution Time Min Max Average SD Min Max
-
HT3529 how to delete phone numbers that auto complete in messages
when I type a letter in a message an old number appears. I want to delete those numbers. How?
-
TVSU recommends obsolete versions of Flash plug-ins
As of June 3, 2008, ThinkVantage System Update is recommending I install the obsolete 9.0.115.0 version of Adobe Flash, which Adobe patched on April 8, 2008 to fix several vulnerabilities. Interestingly, this obsolete version is the same version pro
-
Help with a program. GUI involved
Ok I have a homework assignment to create two combo boxes which basically will add the two combo boxes together. Each combo box has 4 different choices that are in a string array but will equal a certain amount of money. I have made constants to dete
-
Sharepoint Tutorials and useful links
Hello, I am beginner in Sharepoint (just started learning from two weeks) , I am searching for sharepoint tutorials with complete concepts and examples and any website links which provides complete understanding about sharepoint. Suggest any tutoria