I am new to Oracle DB. I have used SQL Management Studio extensively. I have used SQL profiler. SQL profiler lists all the queries executed whenever there is a database call. I need similar option in Oracle.
There is probably no direct equivalent. So a few things.
It's probably more effective to state what you are trying to achieve, rather that asking for a specific tool or piece of functionality
For System wide monitoring, there is Enterprise Manager (EM) and EM Express.
EM gives you access to the Automatic Workload Repository (AWR), which can provide an overall system report
For SQL specific monitoring EM gives you access to SQL*Monitor
Both AWR and SQL*Monitor can be accessed outside of EM too.
Related
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.
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).
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
Does Cloudera Imala- Does it support Stored procdudre/ Function or SQL Blocks like PL/SQL?
I have some logic to be built which will need multiple sql statements. Is there another way to achieve this?
Impala only provides SQL.
You need to use some programming language or tools to build applications - SQL it self cannot be used. PL/SQL is traditional database programming language which runs in PL/SQL engine embedded in database. It reduces overhead between application server and database server, as the PL/SQL engine is embedded in the database. However, storage is network mounted and still data have to come to database server.
In case of big data technologies, there is not much beneficial of doing so. Even if you use Java, it will be running on all the nodes in the cluster and code goes to data. To build applications using Impala, you can just use Java with JDBC or you can even connect third party applications. Hence there is very little advantage of having programming language like PL/SQL.
My team does not have direct, command-line access to the oracle boxes but we have need to, from time to time, spin up dev instances of the DB.
We do not need the data, but we do need the layout. Are there any tools that would interrogate an oracle instance and build a new instance?
Take a look at this tool.
http://www.red-gate.com/products/oracle-development/schema-compare-for-oracle/
We use the version for Sql Server in my shop and are very happy with it.
(I'm not affiliated with Red Gate, just a satisfied customer)
There are lots of ways...
You can do a schema export in TOAD and most other decent tools or you can write something using data pump
http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php
for starters