I’m currently working with Adabas on Linux and facing some challenges with performance and optimization. Specifically, I’ve noticed that queries are taking longer than expected, and I’m wondering if there are any best practices for improving performance in this environment.
Has anyone here worked with Adabas on Linux or encountered similar issues? I would appreciate any advice on configuration settings, tuning parameters, or general tips for speeding up query execution.
Additionally, if anyone has experience integrating Adabas with Natural on Linux, any insights on how to streamline the process would be really helpful as well.
How do you define “expected query response times” ?
Starting “performance optimization” from the Adabas end without looking VERY CLOSELY at the application first does not make much sense,
so start wth one query that “does not meet expectations” and make sure it really does what you think, i.e. takes a path that reads just the data you need
and not the whole file for returning just a few records or the like.
check the network between the Natural application and the Adabas server, if they’re not one the same VM, ideally they should be on the same subnet. if they can’t have the routers checked for anything that would slow the communication path (timeouts, firewall rules, etc)
for cloud installations, there are many ways the application server (Natural) and database server (Adabas) can be installed, but the network path between them is critical for performance. If they’re not on the same subnet, there can be significant lags.
use “getdbinfo” to test the base elapsed time between the servers, compare to the network ping elapsed time.
For Adabas on Linux performance, it’s essential to start by increasing the buffer pool (LBP) and work pool (LWP) sizes significantly to minimize physical I/O operations; ideally, you should aim for over 90% buffer efficiency to ensure smooth data access. Additionally, optimize file access by carefully designing and reviewing indexes with effective use of descriptors, and regularly reorganize fragmented files using ADAORD to maintain database health and access speed. In Natural queries, make use of MULTI-FETCH techniques (e.g., FIND MULTI-FETCH 15) and apply precise WITH clauses to filter data at the server level, reducing data movement and processing time. Also, fine-tuning your Linux system is key: prioritize high-speed storage like SSDs, adjust the I/O scheduler to ‘deadline’ or ‘noop’ for databases, and tune kernel parameters, particularly lowering vm.swappiness, to allocate memory resources more intelligently. Always monitor system and database performance using ADAREP and ADAMON, and periodically use ADADEF to defragment and reorganize database structures, ensuring long-term performance stability.
For Natural integration with Adabas, ensure that the Natural BUFFER settings are aligned with Adabas LBP sizes to maximize efficient data transfers between the application and the database. Keep DDMs lean—only include the fields actually needed by the userviews—to minimize overhead. When writing Natural programs, always leverage FIND statements with descriptors and limit reads using HISTOGRAM where applicable to further enhance performance. To extend your applications, enable API access through EntireX, allowing Adabas to connect seamlessly with modern architectures like microservices; deploying on Docker or Kubernetes could also provide significant advantages in scalability and management. Additionally, enhance your application stability by implementing structured error handling using ON ERROR blocks and ensure consistent operational logging through SYSERR or customized logs. Finally, consider introducing automation for regular database health checks and backups, and if not already in place, a proactive monitoring solution to capture performance trends and early warnings.
Please feel free to share your Adabas version, the nature of your queries (simple, complex, batch, online), user load, and any specific integration challenges you are facing. With more details, I can give you even more precise recommendations tailored to your environment.
To optimize your queries, ensure your datasets are properly indexed, as this can significantly speed up execution. Consider adjusting the Adabas configuration parameters, particularly the DBH settings, and review your queries for efficiency, avoid complex joins, and limit data retrieval where possible. Using Adabas monitoring tools can also help identify bottlenecks.