SnowMirror vs ODBC driver
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2018 03:00 PM
My company is experiencing performance issues with the ServiceNow ODBC driver. As I understand it, this driver is not a real driver -- it is merely a wrapper around the out-of-the-box (OOTB) ServiceNow SOAP API, which is the cause of its poor throughput. It was recommended to me to look into SnowMirror to resolve our throughput problem. As I understand it, SnowMirror also uses the OOTB ServiceNow SOAP API. But, somehow, it has better performance than the ODBC driver (or so it's claimed). Is this true? If so, how can this be, given that they both use the OOTB ServiceNow SOAP API (and are, therefore, effectively the same thing)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2018 09:27 AM
Hi Casey,
Perspectium is not SOAP API based, it has a completely different architecture using a native application and Message Broker Service.
You can read more about it here ->
http://www.perspectium.com/wp-content/uploads/2016/05/replicatorvstraditionalesbapproach__1_.pdf
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2018 09:37 AM
That is really helpful information. Is Perspectium's architecture more performant than that of, say, SnowMirror? Still, given that SnowMirror uses the OOTB SN SOAP API, how can SnowMirror be more performant than the SN ODBC "driver"?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2018 10:12 AM
As I said
Your reporting will be faster. The reason it is faster, because it pulls data in advance using a scheduled job. The data is stored in a database. Your reporting tool just connect to the database.
You can actually do the same using ODBC Driver. But I wanted to understand, is your reporting slow or your data pulling is slow?
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2018 11:51 AM
The data is pulling slow. Yes, it can be tuned (i.e., chop up big queries into smaller queries and leverage concurrency), but only so much can be done.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2018 12:33 PM
If you query with the ODBC alone you are always querying all data on the instance (or table / view) unless you specify in your query specific parameters -
with products like SnowMirror they will download the data from the instance to a local database and once the initial load has completed it is running just Delta's since the last import based on sys_updated_on
What indexing you add locally or what server spec you use is down to you.
Sometimes a query on the instance can be slow as the relevant indexes may not exist. Too many can also have other issues.
The enterprise edition will download the indexes from the instance. I tend to find that Standard is sufficient as long as you have a decent DBA who can do performance analysis and create the indexes you require
My clients have run some tables weekly, others over night and some every 10 minutes or so - depending on the clients requirements
I also tend to prefer that you do not inherit columns in snowmirror and I do want both value and display value due to how they create the fields. for example in sys_user.
If you choose just data for location you will see "location:123312312121afdf"
If you choose just display value you see "location:London".
If you choose other you get "location: 121231231231" dv_location:London"
The reason for not inheriting is at one client a table extended task and after "inherit" was chosen with displayvalue we found a problem with a report and it was quite simply too many columns in the local database table.