Oracle report about executed queries for a specific user before TDE activation - oracle

I need to run a performance comparison before activating Oracle TDE on our database (12c).
My idea was to monitor executed queries for a specific user (Java EE App Server) and then replay these queries on a cloned Oracle TDE instance to compare response times.
We found the Oracle AWR feature, however, in this report over 90% of the queries are "system" queries which were not triggered by the App Server's JDBC driver(, but by internal oracle jobs/optimizations?).
Is there some functionality to restrict AWR monitoring to only use queries of a specific user/driver or is there another functionality I could use for conducting my performance tests?
Thanks!

Oracle's Automated Workload Repository (AWR) captures all database activity. You have some flexibility in the depth of statistics it captures, but you can't filter the way you are asking for. When you product an AWR report, you will get everything the database performed, and specifically for the SQL data, you'll get the top or highest load SQL's. There are some additional thresholds you can set to get more SQL in the report, so instead of the top-10, you can get the top-50. This can be set as a default or per AWR report.
More can be found here
Oracle workload repository package

Related

How to restrict Apache Zeppelin JDBC Interpreter to only select queries

I am doing POC for Apache Zeppelin for reporting purpose. I created a JDBC Interpreter to connect Oracle database. This way our user can execute queries and generate reports. Currently they have to login through toad to fetch data/report every day. We must restrict that.
But problem is, they can also execute update/delete queries. I want our user to run the Select queries and not any DML queries or Inserts.
Is there a way to restrict it? I expected some setting in configuration,
I tried to look on their documentation but couldn't find any clue.

How to check if SSAS Partitions are running in parallel or not using SQL Profiler?

I am situation where I have to check and confirm whether SSAS partitions queries are running parallel or not while processing the SSAS cube using SSIS job. SSIS job/package using 'Analysis Services Processing Task' to process cube by selecting each object(dimensions and partitions) in it instead of selecting direct SSAS DB.
Can any one please guide how to check parallelism using sql profiler?
Also if anyone can point out why cube processing using above way is taking longer than the cube processing by SSIS job in which 'Analysis Services Processing Task' selecting ssas db name directly.
please help with any comments/ suggestions.
Many Thanks
Regards,
Update: My end db from which partitions will fetch the data is Oracle
I think there is an easier way than using SQL Profiler, you can benefit from the amazing stored procedure sp_whoisactive to check what are the current query running on the server (Data Source SQL Database Engine) while processing the Analysis Services Processing Task.
Just download the stored procedure and create it on your master database.
sp_whoisactive homepage
How to Log Activity Using sp_whoisactive
Hint: In SQL Server Management Studio, go to data source properties and check the maximum allowed connections property, since it may prevent queries parallel execution
If you are looking for an answer using SQL Profiler, you can simply create a trace to monitor the SQL Server that contains the data sources used by partitions. And while the partitions are processed if many SQL queries are executed in parallel then parallelism is achieved.
If you are new to SQL Profiler you can refer to the following links to learn how to monitor only T-SQL commands:
How to monitor just t-sql commands in SQL Profiler?
Use SQL Server Profiler to trace database calls from third party applications
But if you are looking for a simpler solution, then the other answer is what you are looking for.

SSIS not running in parallel with OraOLEDB.Oracle.1 Provider

we had one SSIS package with Oracle 11 Client, we would run our daily query with 30min to 1 hour run time.
we had to upgrade our oracle clients as one of our other oracle source got upgraded.
post upgrade to Oracle 12c, our daily job run time increased.
oracle DBA said, its not running in parallel, as its occupying only one processor.
when we run the same query from SQL Developer or toad, its running in parallel. but if we run from SSIS OLEDB Source component its not running in parallel.
I'm clue less with this behavior. any solution will be helpful.
ask me more clarifications if required.
Trying to figure out the issue
I tried to search on this topic, i didn't find a lot of informations but i think it is based on the OLEDB Connection string provided in the OLEDB Connection Manager.
Check the following Oracle documentation it may give you some insights:
Features of OraOLEDB
In the link above, in the Distributed Transactions part, they mentioned that:
The DistribTX attribute specifies whether sessions are enabled to enlist in distributed transactions. Valid values are 0 (disabled) and 1 (enabled). The default is 1 which indicates that sessions are enabled for distributed transaction enlistments.
Sessions enabled for distributed transaction enlistments cannot run statements that use the direct path load and parallel DML capabilities of the Oracle database. Such statements are executed as conventional path serial statements.
I am not sure if this could help, but it is not bad to give a try.
Oracle Attunity Connectors
Instead of using OLEDB Source to read from oracle, it is better to use Oracle Attunity Connectors for SSIS which guarantee higher performance than OLEDB Source:
Microsoft Connectors By Attunity
Attunity's high speed connectors for Oracle and Teradata have been selected by Microsoft to be included with SQL Server Integration Services (SSIS).

OBIEE sql statment generation for jdbc

How does OBIEE generate the sql statements that are then run against the target database? I have a report that generates one SQL statement when executed against Oracle database and completely different when executed via jdbc driver against Apache Drill. My problem is that in the second case the query is not even syntactically valid.
I've read this - http://gerardnico.com/wiki/dat/obiee/query_compiler
but still don't understand the mechanism through which Oracle decides on the actual query to be executed based on the driver.
OBIEE uses a "common metadata model" known as the RPD. This has a logical model of your data, along with the physical data source(s) for it. When a user runs a report it is submitted as a "logical" query that the BI Server then compiles using the RPD to generate the necessary SQL query (or queries) against the data sources.
Whilst Hive and Impala definitely work with OBIEE, I've not heard of Drill being successfully used. If you've got the connectivity working then to sort out the query syntax it generates you need to fiddle with the DBFeatures configuration which OBIEE uses to understand what SQL statements are valid for a given database. So if Drill doesn't support, for example, INTERSECT, you simply untick INTERSECT_SUPPORTED (I'm paraphasing the exact dialog terminology).

How to find sql query in weblogic

I support an application whose UI is built on weblogic server. I need to know the sql query fired in the database whenever any action is performed on UI. Since there a lot of users hence I need to know is there any specific action through which I can identify it ?
Your managed server logs should give you queries run through a PreparedStatement. Any database will give you auditing capabilities so you can track what SQL was run, origins and parameters passed.

Resources