HANA SPS 7 first dazzling highlights

Another half year passed and another SAP HANA SP has just been released.

SAP HANA 1.0 SPS 7 is out in the wild as revision 70.00 (double zero revision, yes Moneypenny 😉 ) and a lot of things had been changed, added and (hopefully) improved.

https://i2.wp.com/upload.wikimedia.org/wikipedia/en/9/9b/Miss_Moneypenny_by_Lois_Maxwell.jpg?w=474
(linked from here)

Don’t get me wrong, this is by no means a comprehensive “What’s new” report (for that, make sure to check the SPS 7 documentation as soon as it is out as well https://help.sap.com/hana_platform).
While the documentation is not yet completely available on help.sap.com make sure to check the built in online help in SAP HANA studio (reference guides).

Also, check out SAP note 1944771 for release information.

ATTENTION: one of the major changes is that from now on, there exist maintenance revisions that are developed besides the SP revisions.

The maintenance revisions shall only contain bug fixes and keep functionality stable.

As a consequence of that, the upgrade paths between maintenance and SP revisions must be obeyed.

Read SAP note 1948334: SAP HANA Database Update Paths for Maintenance Revisions for the details.

Finally, don’t miss out on the WEBCAST series “SAP HANA SPS7 – Overview, Features, Details

So this is what Ravi asked for – just quick glimpses

PlanViz changes

  • GUI improved

There’s even the option to execute a query and displaying the result set.

  • aborted plans still visible

That’s right, even though the query aborts with an error, you can review the PlanViz trace up until the POP that failed and analyze what was going on.

  • inverted index usage information (visible in the hover over details of POPs)

Thanks to my co-author, program lead and fellow Wuppertaler Richard from whom I stole this example…

 

Name: Basic predicate

ID: cs_plan13688_ld9506_30103_tableSearch1_pop1

Summary: MANDT = ‘800’

Execution Time (Self): 0 ms

Execution Time (Inclusive): 0 ms

Execution Start Time: 162,707 ms

Execution End Time: 162,707 ms

Estimated result size: 51

Estimation time: 0.067 ms

Inverted Index: not used

  • applied column filters (WHERE condition and analytic privileges) shown at the object where it is applied

Unfortunately, there’s no time for now to do more tests – but I’m quite happy to see that so many improvement requests have been fulfilled (thanks for all the due follow up Mr. K!).

Session grouping, filtering and aggregation features

Fancy graphical display of memory and resource allocation/usage

Mhmm… I like pie…

Impressive how these lines have different colors and go upwards…

Statisticsserver process now included in indexserver process

Yep, it’s not a separate process any longer, doesn’t have its own persistence anymore and is much better configurable (that’s what I heard).

Details are to be found in SAP note 1917938.

As it’s not a very visual feature, here some trace file output line from the migration 🙂 …


 i STATS_CTRL       NameServerControllerThread.cpp(00203) : installing...
 i STATS_CTRL       NameServerControllerThread.cpp(00299) : old StatisticsServer: ld9506:34205, volume: 2
 i STATS_CTRL       NameServerControllerThread.cpp(00355) : waiting for start of old StatisticsServer ld9506:34205, volume: 2...
 i STATS_CTRL       NameServerControllerThread.cpp(00371) : waiting for old StatisticsServer ld9506:34205, volume: 2 to stop all operations...
 i STATS_CTRL       NameServerControllerThread.cpp(00373) : old StatisticsServer ld9506:34205, volume: 2 has stopped all operations
 i STATS_CTRL       NameServerControllerThread.cpp(00376) : old StatisticsServer is ready. starting...
 i STATS_CTRL       CallInterfaceProxy.cpp(00035) : sending install request
 i FileIO           FileStatistics.cpp(00287) : FileFactoryConfiguration::initial(path="/usr/sap/WUP/HDB42/backup/log/", AsyncWriteSubmitActive=auto,AsyncWriteSubmitBlocks=new,AsynReadSubmit=off,#SubmitQueues=1,#CompletionQueues=1)
 i STATS_CTRL       CallInterfaceProxy.cpp(00039) : response to install request: OK
 i STATS_CTRL       NameServerControllerThread.cpp(00299) : old StatisticsServer: ld9506:34205, volume: 2
 i STATS_CTRL       NameServerControllerThread.cpp(00422) : found old StatisticsServer: ld9506:34205, volume: 2, will remove it
 i STATS_CTRL       NameServerControllerThread.cpp(00425) : forcing log backup...
 i FileIO           FileStatistics.cpp(00287) : FileFactoryConfiguration::initial(path="/usr/sap/WUP/HDB42/backup/log/", AsyncWriteSubmitActive=auto,AsyncWriteSubmitBlocks=new,AsynReadSubmit=off,#SubmitQueues=1,#CompletionQueues=1)
 i STATS_CTRL       NameServerControllerThread.cpp(00430) : log backup done. Reply: [OK]
--
[OK]
--
 i STATS_CTRL       NameServerControllerThread.cpp(00433) : stopping hdbstatisticsserver...
 i STATS_CTRL       NameServerControllerThread.cpp(00458) : waiting 5 seconds for stop...
 i Service_Shutdown TREXNameServer.cpp(03734) : setStopping(statisticsserver@ld9506:34205)
 i STATS_CTRL       NameServerControllerThread.cpp(00463) : hdbstatisticsserver stopped
 i STATS_CTRL       NameServerControllerThread.cpp(00466) : remove service from topology...
 i STATS_CTRL       NameServerControllerThread.cpp(00470) : service removed from topology
 i STATS_CTRL       NameServerControllerThread.cpp(00472) : remove volume 2 from topology...
 i STATS_CTRL       NameServerControllerThread.cpp(00476) : volume removed from topology
 i STATS_CTRL       NameServerControllerThread.cpp(00478) : mark volume 2 as forbidden...
 i STATS_CTRL       NameServerControllerThread.cpp(00480) : volume marked as forbidden
 i STATS_CTRL       NameServerControllerThread.cpp(00482) : old StatisticsServer successfully removed
 i STATS_CTRL       NameServerControllerThread.cpp(00405) : removing old section from statisticsserver.ini: statisticsserver_array_BACKUP_LAST_DATA
[...]
 i STATS_CTRL       NameServerControllerThread.cpp(00405) : removing old section from statisticsserver.ini: statisticsserver_view_VOLUMES_OUT_OF_ORDER
 i STATS_CTRL       NameServerControllerThread.cpp(00409) : making sure old StatisticsServer is inactive statisticsserver.ini: statisticsserver_general, active=false
 i STATS_CTRL       NameServerControllerThread.cpp(00222) : installation done

New SQL functions

HASH_SHA256 –  “Returns a 32-byte VARBINARY hash value of the concatenated arguments. The hash is calculated using a SHA256 algorithm.

I guess that Jon and In-Sung Lee will like that

Alright, admit it: you also have to blink to believe that all that made it into SPS 7, right?

It’s nearly as if Xmas was coming up… wait a minute…

Cheers and a great holiday season everybody!

Lars

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.