카테고리 없음

Sharepoint performance 관련

종소리도깨비 2013. 3. 14. 10:14
반응형

How to avoid the Top 5 SharePoint Performance Mistakes

   

출처: <http://apmblog.compuware.com/2010/03/18/how-to-avoid-the-top-5-sharepoint-performance-mistakes/>

   

Sharepoint로 프로그램 짤때 몇가지 반드시 지켜야할 규칙이 있다.

대표적인것이 SPSite 와 SPWeb 개체를 사용하고 나면 반드시 Dispose해야 한다는것등등…

   

그외 프로그램 짤때 습관적으로 짜던 패턴들이 성능에 악영향을 미치는 것을 잘 보여주는 예제들이 있다고 한다.

물론 개인적으로 검증은 안해 봤지만… 굳이 나쁘다는데 이렇게 쓸 필요는 없으니까…

   

   

  • 이렇게 쓰지 말란다…. 계속적으로 데이터베이스에 왔다갔다하며 부담을 준다나 어쨌다나…

       

    SPList activeList = SPContext.Current.List;

    for(int i=0;i<100 && i<activeList.Items.Count;i++) {

    SPListItem listItem = activeList.Items[i];

    htmlWriter.Write(listItem["Title"]);

    }

       

    이렇게써라 한다. 필요한 속성들만 담아놓고 in-memory 상에서 해결한다구...

    SPListItemCollection items = SPContext.Current.List.Items;

    for(int i=0;i<100 && i<items.Count;i++) {

    SPListItem listItem = items[i];

    htmlWriter.Write(listItem["Title"]);

    }

       

  • SPQuery 사용시 주의점

    SPQuery 쓸때는 반드시 RowLimit 와 가져올 필요한 Field만 정의해서 사용하라.

    이건 머 당연한 소리이니 ..

       

    query.RowLimit = 100; // we want to retrieve 100 items

       

    query.ViewFields = "<FieldRef Name='ID'/><FieldRef Name='Text Field'/><FieldRef Name='XYZ'/>";

       

    세부적인 부분은 sharepoint CAML designer 를 통해서 확인해 가면서 CAML / SiteDataQuery 만들면 되겠다.

    설명 : http://karinebosch.wordpress.com/2012/12/13/caml-designer-for-sharepoint-2013-released/

    다운로드 : http://www.biwug.be/

       

  • SPSite/SPWeb

    위에서 설명했던 메모리 누수 발생

    뭐 이런 형태로 쓰시라…

       

    Using(SPsite site= new SPsite(url))

    {

       

    }

       

    Or

       

    SPsite site = nulll

    try

    {

    site = new SPSite(url);

    }

    catch(Exception ex)

    {

    }

    finally

    {

    site.close();

    site.dispose();

    }

       

       

  • Indexed Column이 반드시 빠른 것은 아니다.

    그렇다고 반드시 느려 지는것도 아니고 적절히 사용해라 정도로 이해하면 될듯.

       

  • Sharepoint 는 대용량 관계형 데이터 베이스가 아니다.

    당연한 이야기로 Sharepoint 로 구현하기 적합한 업무만 적용하라..

반응형