SAP iXp Summit 2017

SAP’s Internship Experience Project (iXp) focuses on providing a best-in-class intern experience and assigning impactful projects in strategic areas of SAP’s business. This project is built based on the idea that through placing passionate people on the right teams, providing leadership and learning opportunities, and working on impactful projects, purpose is born.

My eyes widened at the sight of scrambled eggs served as part of our breakfast buffet, but little did I know, that was the just the beginning of the one and only, SAP iXp Summit 2017.

 

The summit was held at The Pinnacle Hotel Harbourfront— a truly stunning hotel in the heart of Downtown, Vancouver. The glimpse of sunshine in the middle of a gloomy November shone through the tall windows that filled the walls of the venue, and just like that, we kickstarted the summit with speakers and an applicational design thinking activity.

 

Along with the incredible Don Wakefield and Janet Wood, Kirsten Sutton— the Global Head of Engineering for SAP Jam spoke about the art of creating meaningful connections throughout our careers. This resonated with me because as an intern on the SAP Jam team, it was an honour to be able to pick Kirsten’s brain, and to my relief, I was thoroughly impressed and her panel exceeded my expectations. I left the panel with my mind bubbling with ideas, and a stronger understanding of why I, even as an intern, should make conscious efforts to broaden my network. Kelsy Trigg followed and gave a talk titled “Lessons from the Mountains”, where she spoke about her story of completing the Transalpine-Run— a 7 day trip to traverse the Alps. The journey was a tough one, but she what she took away from it and later on taught us, was well worth the journey. She put into perspective the behind the scenes of hardwork hiding in the corner of everyone’s success, and most importantly, she reminded us to celebrate every step of the way as we climb our own mountains.

 

We then wrapped up day 1 with a challenge to build a mini golf course. However, the golf course was to be made entirely of rationed nonperishable foods, which were later on donated to the Greater Vancouver Food Bank. Every team made up their own unique golf courses. Fom a journey to save the princess, to recreating the life of an intern with nothing more than canned food and some cardboard, I was in awe of the creativity that filled the room. I felt humbled to be standing amongst these brilliant students who were passionate about making a difference in the technology community. Day 1 of the summit left me feeling inspired, and I just couldn’t wait for what was to come.

 

Day 2 started off with a deep dive into SAP Leonardo (again, with a side of scrambled eggs). As an intern, it can be overwhelming to think about the hundreds of products that SAP builds and maintains. Therefore, it was helpful to be able to gradually gain an understanding of some of our core products by learning about each speaker’s role in the community, and the awesome solutions they were working on.

We then jumped into activities with folks from the Vancouver TheatreSports League. As someone who grew up watching their shows at Granville Island, I was ecstatic to be able to try my hand at some improv. Despite my excitement, I was nervous and every activity that we did pushed me comfortably out of my comfort zone. I was proud of myself for being able to live in the moment. I let go of the worries of being judged by others and I just had fun. But my favourite part about all this was how every activity tied into actions we could take in the work place to communicate with our co-workers more effectively, and with trust. At the end of the day, trusting that while you’ll do everything you can to help your co-workers, like actors in an improv act, you know that they too, will return the favour.

 

Lunch on the 19th floor with the most beautiful view of our city was then followed by breakout sessions, where we optionally attended the workshops that we were interested in. I chose a workshop on authenticity and gained insight on how to advance in my career, while always being true to myself. This was important to me and I was glad to be able to have an open discussion about it. I also attended a workshop by Doug Beleznay and Jason Cao— “Why Emotional Intelligence Matters to You”. They defined the differences between empathy and sympathy and why empathy matters. I self identify as an empathetic developer— it was great to be reassured about what I know, but also to discover some gaps which I could improve on.

 

Jessica, our fantastic iXp lead closed the summit with bittersweet goodbyes of the unforgettable 2 days, and I walked out while humming to the tune of “look around, look around at how lucky we are to be alive right now“. I’m grateful to be a part of SAP’s Internship Experience Project and to have had the opportunity to attend this summit. I’m excited to apply what I’ve learnt and most importantly, share what I’ve learnt with others so that together, we can continue pushing our industry forward! http://bit.ly/2Bwm6m7 #SAP #SAPCloud #AI

SAP SQL Anywhere におけるヒントを使用したSQL リクエストのカスタマイズ : 過去のブログより

このページは、以下の英語ページの抄訳です。最新の情報については、英語ページを参照してください。

https://blogs.sap.com/2014/03/26/customizing-sql-requests-with-hints/

この記事のオリジナルは、 Glenn Paulley がsybase.com に 2009 年 6 月に掲載したものです。その中で、Glenn は SQL Anywhere におけるヒントの使用によるクエリセマンティクスのカスタマイズについて解説しています。

特定の状況においては、ヒントは非常に便利になりえますが、ほとんどの場合、SQL Anywhere のクエリのオプティマイゼーションとクエリの実行においては、クエリとDMLの性能の実行を実現するために全てのコンテキストを考慮して「正しいこと」をする、というとてつもない仕事を行っているということに留意することが重要です。

SQL クエリの正確なセマンティクスに影響を与えるために使用できるメカニズム、特に、特定の SQL 文の結果への同時トランザクションの影響を隔離する(あるいは晒す)ためのものはたくさんあります。このようなメカニズムの 1 つが、使用されるカーソルのタイプです。

例を挙げると、INSENSITIVE カーソルは、同時アップデートの影響からクエリを隔離し、同じトランザクションからであっても、その結果の最初の FETCH より前に、OPEN 時の SQL クエリの全結果セットを実体化します。

一方、SQL Anywhere の KEYSET-DRIVEN (または SCROLL・value-sensitive) カーソルは、それらのローがアプリケーションによってFETCHされたものであると記憶し、同じ結果のローが再FETCH され、同時アップデート(または削除)される場合には、アプリケーションに警告(エラー)を返します。

他のメカニズムとして、SQL 文で使用されている分離レベルがあります。

SERIALIZABLEより低い ANSI SQL 分離レベルには、明らかに同時実行性を改善する利点があります。

しかしながら、同時更新やそれら間の相互作用が理由で、クエリ実行中にエラーが発生するリスクがあります。

他のセマンティックの効果のうち、テーブルヒントの使用は、クエリあるいはテーブルベースでさえセマンティックの変更の指定が可能です。

もともと、私は SQL クエリのヒントの使用は好きではありません。なぜならば、「クエリオプティマイザーに最適なアクセスプランを選択させなければならない」という強い偏見があるからです。

しかしながら、多くの場合において、クエリまたはテーブルヒントは、特にロックの動作を細かく制御するのに、非常に便利です。

SELECT FOR UPDATE

テーブルヒントの話をする前に、FOR UPDATE 構文で指定された文レベルの 2 つの同時実行性制御ヒントについて述べたいと思います。

FOR UPDATE句の基本は、明示的に更新可能なカーソルを宣言します。しかしながら、分離レベル0 と 1 のロックでは、現在の行以外ロックは取得されていないので、その他のローは他の接続による修正や削除がオープンに行えます。

これらのローのその後の更新の可否を確認するには、2つのオプションがあります。

* FOR UPDATE BY LOCK. を指定します。これは、アプリケーションでFETCHされているので、各ローで INTENT ローロックの取得が発生します。INTENT ロックは、他の接続がローを読むことを許可しますが、他の接続はそれの INTENT または WRITE ロックを取得することはできません。INTENT ロックは、COMMIT/ROLLBACKまで保たれる長期のロックです。
* FOR UPDATE BY TIMESTAMP または FOR UPDATE BY VALUES。を指定します。この場合、SQL Anywhereは、他の接続によって特定のローが替えられた、または削除されたという通知を有効化するため、楽観的同時実行制御の形式としてKEYSET-DRIVEN カーソルの使用を強要します。

テーブルヒント

Microsoft SQL Serverのような他のシステムと同様に、SQL Anywhere では追加の WITH 句を使うことでテーブルヒントをサポートしています。以下に demo.db サンプルデータベースを使用した例を挙げます。 SELECT * FROM CUSTOMERS WITH ( NOLOCK )

NOLOCKテーブルヒントは、サーバーが Customers テーブルに分離レベル0でアクセスさせます。テーブルヒントは、ベースまたはグローバル共有 temp テーブルにのみ適用されることに留意してください。ビューまたはプロキシテーブルで使用される場合、ヒントは無視されます。以下が SQL Anywhere 11.0.1 サーバーでサポートされているテーブルヒントのリストです。

* NOLOCK http://bit.ly/2oD71w9 #SAP #SAPCloud #AI