See Part 1 here.
Part 2: Index Handling
Now you have a good idea of what kind of indices you need for your class and how to define them. Next, how do you handle them?
Performance tag groups posts regarding software performance issues and the best practices on solving and monitoring performance issues.
See Part 1 here.
Now you have a good idea of what kind of indices you need for your class and how to define them. Next, how do you handle them?
Hi all.
A long time ago I enabled Activity Monitoring to be able to save myself headaches in the future when looking at the performance of various message routes through our productions. It's served it's purpose of answering questions on how many messages we process a week etc but I had not had the chance to really dig down into the stats for specific message types or destinations to pin point issues.
That time has come, as I have an outbound that periodically queues up without much rhyme or reason.
This is the first in a pair of articles on SQL indices.
Picture the last time you went to a library. Typically they have books sorted by subject matter (and then author and title), and each shelf has an end-plate with a code describing the subject of its books. If you wanted to collect books of a certain subject, instead of walking across every aisle and reading the inside cover of every book, you could head straight for the bookshelf labelled with your desired subject matter and choose your books.
Hi Community,
The new video from Global Summit 2019 is already on InterSystems Developers YouTube:
Hi Community!
Enjoy watching the new video on InterSystems Developers YouTube:
If a picture is worth a thousand words, what's a video worth? Certainly more than typing a post.
Please check out my "Coding talks" on InterSystems Developers YouTube:
1. Analysing InterSystems IRIS System Performance with Yape. Part 1: Installing Yape
Running Yape in a container.
2. Yape Container SQLite iostat InterSystems
Extracting and plotting pButtons data including timeframes and iostat.
In Episode 4 of Data Points, we welcome @Benjamin De Boe to the pod to discuss some of the things you can do to optimize your SQL queries in InterSystems IRIS. We've all heard — either from ourselves or from others — the "this runs too slowly" complaint. I thought Benjamin did a great job walking through many of the things within IRIS you can look at with your queries to see what can be improved.
Hi Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
Hi,
we're planning some work on our SQL Query Plan functionality for a future release of InterSystems IRIS and are interested to hear how you're using them today, or what'd keep you from using them. Rather than try and fit everything in a rigid survey, I thought a simple thread on our beloved DC might also reveal some use patterns that we support or could do a better job on.
Hi,
I have a large XML zen report file that I want to convert to a CSV, what is the most efficient way to do it.
XML file:
<Details> <Col1> aa1 </Col1> <Col2> bb1</Col2> <Col3> cc1 </Col3> </Details> <Details> <Col1> aa2 </Col1> <Col2> bb2</Col2> <Col3> cc3 </Col3> </Details>
Expected Output:
Col1,Col2,col3 aa1,bb1,bb1 aa2,bb2,bb2
Thank you.
Do you ever have the desire to optimize your code as much as possible?
Do you have any cases where every nanosecond matters?
Do you use If statements?
This quick tip can help your code run slightly faster with no additional code.
Hi All,
We have few queries which are simple selects . For simplicity let's say there is a query that joins two tables and gets few columns and both tables have no indexes.
Select Tab1.Field1, Tab2.Field2
From Table1 Tab1
Join Table2 Tab2
On Tab2.FK = Tab1.PK
When we do query plan for this it shows approx 6 million, however if we make a simple adjustment to the query
Select Tab1.Field1, Tab2.Field2
From Table1 Tab1
Join Table2 Tab2
On Tab2.FK = Tab1.PK
WHERE Tab1.Id > 0 (Which will always be the case)
%SQLRESTRICT is a special %FILTER clause for use in MDX queries in InterSystems IRIS Business Intelligence. Since this function begins with %, it means this is a special MDX extension created by InterSystems. It allows users to insert an SQL statement that will be used to restrict the returned records in the MDX Result Set. This SQL statement must return a set of Source Record IDs to limit the results by. Please see the documentation for more information.
Is there anyway to improve the performance of the display of DeepSee dashboards?
It takes minutes to do the cell calculations of computing the axis members.
Any direction or help would be appreciated.
Thanks,
LG
A few years ago, I was teaching the basics of our %UnitTest framework during Caché Foundations class (now called Developing Using InterSystems Objects and SQL). A student asked if it was possible to collect performance statistics while running unit tests. A few weeks later, I added some additional code to the %UnitTest examples to answer this question. I’m finally sharing it on the Community.
Hi Everyone,
Please welcome the new Global Summit 2019 video on InterSystems Developers YouTube Channel:
APM normally focuses on the activity of the application but gathering information about system usage gives you important background information that helps understand and manage the performance of your application so I am including the IRIS History Monitor in this series.
In this article I will briefly describe how you start the IRIS or Caché History Monitor to build a record of the system level activity to go with the application activity and performance information you gather. I will also give examples of SQL to access the information.
This week I am going to look at CPU, one of the primary hardware food groups :) A customer asked me to advise on the following scenario; Their production servers are approaching end of life and its time for a hardware refresh. They are also thinking of consolidating servers by virtualising and want to right-size capacity either bare-metal or virtualized. Today we will look at CPU, in later posts I will explain the approach for right-sizing other key food groups - memory and IO.
So the questions are:
Hi Community!
New video is already on InterSystems Developers YouTube Channel:
Our team is reworking an application to use REST services that use the same database as our current ZEN application. One of the new REST endpoints uses a query that ran very slowly when first implemented. After some analysis, we found that an index on one of the fields in the table greatly improved performance (a query that took 35 seconds was now taking a fraction of a second).
We saw this improvement on our development system and our test system. However, when we moved the code to the production system, the query still took “forever”. What went wrong?
Hi Community!
Enjoy watching the new video on InterSystems Developers YouTube, recorded by @Joel Solon, InterSystems Senior Technical Trainer:
Hi Everyone!
Please watch the new video on InterSystems Developers YouTube, recorded by @Sourabh Sethi in the "Coding Talks" format:
Informative and Fast WEB API VIA ObjectScript and Ensemble/HealthShare
Pre-requisite - Basic knowledge of ENSEMBLE and ObjectScript
My both previous sessions were related to OBJECTSCRIPT.
This time, we are going to add a flavour Ensemble/Healthshare,
to be informative and fast.
In this session we are going to discuss about -
"Informative and Fast WEB API VIA ObjectScript and Ensemble/HealthShare"
Web API can be REST or SOAP. We will taking example of SOAP in this session.
However, whatever I demonstrate today, will also be applicable for REST.
Slowness of the 'Source' and 'Target' parameters in the (portal) Message Viewer is caused by the Bitmap indices of Ens.MessageHeader.
Running the 'bitmap index clean up' routine for Ens.MessageHeader will fix the issue.
I checked with WRC and they advised:
“Yes it is safe to run this tool on a live system. It will eat up 1 CPU and load a lot of data from disk into global buffers so I would suggest running it at a slower time of day.”
To compress the Bitmap indices of Ens.MessageHeader use the terminal to call OneClass():
zn "PRODUCTION"
do ##class(%SYS.Maint.Bitmap).OneClass("Ens.MessageHeader",1,0)
Hi Everyone!
New session recording from Global Summit 2018 is available on InterSystems Developers YouTube Channel:
In the previous parts (1, 2) we talked about globals as trees. In this article, we will look at them as sparse arrays.
A sparse array - is a type of array where most values assume an identical value.
In practice, you will often see sparse arrays so huge that there is no point in occupying memory with identical elements. Therefore, it makes sense to organize sparse arrays in such a way that memory is not wasted on storing duplicate values.
Hi Community!
Please welcome a new video on InterSystems Developers YouTube Channel:
Cache version: Cache for Windows (x86-64) 2017.2.1 (Build 801_3U)
Good Afternoon,
I have a co-worker who is trying to run the below query via ODBC. The issue is that the query appears to be running extremely slow (nearly 2 hours).
Below is the generated query plan
Hi Community!
Please welcome a new video on InterSystems Developers YouTube Channel:
Suppose we need to store millions of values temporarily, that means, we don't care about them if we lose them but our application use them to get realtime information. Should I use Cachetemp or whatever other DB without journaling enabled? If answer is Cachetemp, shouldn't be a problem if we decide to scale using App Server + ECP? I'm not sure what would happen with the app logic in such architecture as I guess I couldn't map and share cachetemp...
Any idea/suggestion?