Query optimizing
I was wondering if i can get input from anyone in optimizing this query. any input appreciated
select a.alignment_name, a.external_id_1, a1.alignment_name, c1.name, c1.external_id_1, af.affiliation_type, c2.name, c2.first_name, c2.external_id_1
from alignment a, customer_alignment ca, customer_rating cr, affiliation af, customer c1, customer c2 , alignment a1
where a.team_id in (32236,32266) and a.status = 'ACTV' and ca.alignment_id = a.alignment_id
and cr.alignment_id = ca.alignment_id and cr.customer_id = ca.customer_id and cr.rep_ratings = '1'
and af.from_customer_id = cr.customer_id and c1.customer_id = af.to_customer_id
and c2.customer_id = af.from_customer_id and a1.alignment_id = a.manager_alignment_id
and af.from_customer_id <> af.to_customer_id and af.affiliation_type <> 'PRES' and af.affiliation_type <> 'INFL'
union
select a.alignment_name, a.external_id_1, a1.alignment_name, c1.name, c1.external_id_1, af2.affiliation_type, c2.name, c2.first_name, c2.external_id_1
from alignment a, customer_alignment ca, customer_rating cr, affiliation af, customer c1, customer c2 , alignment a1, affiliation af2
where a.team_id in (32236,32266) and a.status = 'ACTV' and ca.alignment_id = a.alignment_id
and cr.alignment_id = ca.alignment_id and cr.customer_id = ca.customer_id and cr.rep_ratings = '1'
and af.from_customer_id = cr.customer_id
and c1.customer_id = af2.to_customer_id
and c2.customer_id = af.from_customer_id and a1.alignment_id = a.manager_alignment_id
and af2.from_customer_id = af.to_customer_id and af2.affiliation_type <> af.affiliation_type
and af2.from_customer_id <> af2.to_customer_id
and af.from_customer_id <> af.to_customer_id and af.affiliation_type <> 'PRES' and af2.affiliation_type <> 'PRES'
and af.affiliation_type <> 'INFL' and af2.affiliation_type <> 'INFL'
As a first step
-- rephrase:
Select a.*
from table1 a
where a.creation_date < v_CurDay3
and not exists(select 1
from table2 e
where e.fum_id = a.fum_id
and a.fum_id not in (select u.fum_id
from table1 u
where u.current_status = 'Cancelled'
and u.last_chg > sysdate - 365);
-- to:
select *
from (select x.*,y.fum_id fum_id_2
from (select *
from table1
where creation_date < v_CurDay3
and (u.current_status <> 'Cancelled' or u.last_chg <= sysdate - 365)
) x,
table2 y
where x.fum_id = y.fum_id(+)
where fum_id_2 is null Regards
Etbin
Similar Messages
-
Explain Plan understand technique & Query optimizing check list
Hello gurus,
Can some body help me with doc available or your experience to tell on how to understand Explain Plan & Query optimizing check list.
Thanks..That's correct,
But unfortunately the institute is pretty far from home.. and travelling time will be high..
I am a working man..
Please suggest if some good book or link.
Thanks. -
hi, there.
I am working Oracle Spatial 9.0.1 and I have a problem about the
performance of spaital query, can someone help me resolve it?
/*query 1*/
select t1.line_seg
from spatial_list_Traj
where sdo_within_distance(convert_trajseg_to_lineseg
(t1.line_seg), MDSYS.SDO_GEOMETRY(2003, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 3), MDSYS.SDO_ORDINATE_ARRAY
(212.117, 352.613, 221.617, 362.708)), 'querytype=filter
distance=0.5') = 'TRUE';
/* query 2*/
select t1.line_seg
from spatial_list_traj
where object_id = 1 and sdo_within_distance
(convert_trajseg_to_lineseg(t1.line_seg), MDSYS.SDO_GEOMETRY
(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 3),
MDSYS.SDO_ORDINATE_ARRAY(212.117, 352.613, 221.617,
362.708)), 'querytype=filter distance=0.5') = 'TRUE';
there are about 120,000 rows in the spatial_list_Traj table and
query 1 takes only 1 second to finish, which is a good result
but if I add another condition, like query 2, the time cost is
still 1 second. I thought it can be much faster since there is
only 48 rows whose object_id is 1. what I expected it to do was
for the optimizer to filter out the rows that match
the 'object_id = 1' criteria and then do a spatial query on the
filtered data.
PS: there are two indices--a b-tree index on column 'object_id'
and of course, a functional spatial index on column 'line_seg',
which is a R-tree.
thanks in advance
Hu CaoHi Hu,
The second query is probably not using the spatial index. The
spatial index indexes the whole table based on spatial
relationships, so even though you may have filtered out all but
48 rows, the spatial index has to be applied to all of the rows.
In this case, it is probable that all of the rows returned with
object_id=1 are being geometrically compared with your query
window, which may account for the extra time.
You may want to try a hint to tell the optimizer not to use the
index on object_id, i.e.
SELECT /*+NO_INDEX(spatial_list_traj object_id_index_name)*/
Hope this helps,
dan -
Hello ABAP Gurus..
I dont have much idea about ABAP side but we have a requirement in our project where we need to fetch huge amount of data from backend and display it on the WebDynpro Java screen. I was going through the paging solution provided by SAP so that we can minimize the Java AS server memory and performance issues.
I was wondering if we can get the selective no of records from tables based on pagesize. What I mean here:
Suppose total no of record that I want to display on the WebDynpor screen is say 10000.
PageSize of my webdynpro table = 100 records
Now Can I write a select query (or is there any other way) to get data from backened table pagewise like at first hit I get records from 1 - 100, second hit I should get records from 101 - 200 , third hit from 201 - 300.. and so on till the lat record?
Is it possible? If yes, how can I acheive this?
-AbhinavHey Rob ,
Thanks for quick response.
However, I have a doubt here.
Suppose my PACKAGE SIZE is 100 and I fetch first 100 records in first RFC call, then how do i fetch records from 101 - 200 in the subsequent RFC call?
Also, I guess SELECT .. ENDSELECT has its own performance problems
- Abhinav -
Querying RESOURCE_VIEW using XQuery
Hi all:
Anybody knows the best way to query RESOURCE_VIEW using XQuery to show directory listing information as an example.
For example, I want to produce an XML Document with something like this using XQuery:
<directoryListing>
<dir anyPath="/public/JURRICULUM/cms/en">
<DisplayName xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">en</DisplayName>
</dir>
<dir anyPath="/public/JURRICULUM/cms/en/live">
<DisplayName xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">live</DisplayName>
</dir>
<dir anyPath="/public/JURRICULUM/cms/es">
<DisplayName xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">es</DisplayName>
</dir>
<dir anyPath="/public/JURRICULUM/cms/es/live">
<DisplayName xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd">live</DisplayName>
</dir>
</directoryListing>
I made this result by executing this query:
SELECT XMLQuery('declare namespace res = "http://xmlns.oracle.com/xdb/XDBResource.xsd";
<directoryListing>
{for $i in $directoryListing/dir
where $i/res:Resource/@Container="true"
return
<dir anyPath="{$i/@ANY_PATH}">
{$i/res:Resource/res:DisplayName}
</dir>}
</directoryListing>'
PASSING (
select XMLAgg(XMLElement("dir",XMLATTRIBUTES(any_path,resid),res))
from resource_view where
under_path(res,'/public/JURRICULUM/cms')=1
) as "directoryListing" RETURNING CONTENT).getStringVal()
FROM dual
I had injected resource_view's content as an argument.
Another way is to use ora:view() extension function, but I can't use under_path functionality for example.
Is there some extension funcion like doc() or collection() but instead of returning the content of the document, returning the information of resource_view asociated to the URI?
Is the above query optimal in term of execution plan?
I tested it with JDeveloper and shows an execution plan similar to the query on resource_view alone.
Best regards, Marcelo.Hi all:
I had implemented an XQuery extension library ready to run inside the Oracle JVM, but it can run outside as well.
The code is on the XQuery forums:
How to write an XQuery Extension library
I tested outside the database and the result is:
/usr/java/jdk1.5.0_04/bin/java -hotspot -classpath ... com.prism.cms.xquery.Application1 /public/PCT_ADMIN/cms/es/3-AcercaParque/ 7934
testXQL elapsed time: 3094
testXQ elapsed time: 2164
Running as Java Stored Procedure, it looks like this:
SQL> exec testXQ('/public/PCT_ADMIN/cms/es/3-AcercaParque/','7934')
testXQL elapsed time: 943
testXQ elapsed time: 854
PL/SQL procedure successfully completed.
Obviously running as Java Stored procedure its around 3.5 faster than a regular application.
Injecting the resource_view content as an argument instead of using an XQuery extension library seem to be equals (943 ~ 854), so I'll use the extension library mechanish for clearlying on the code.
Best regards, Marcelo -
XML file too large or XML element too large
I am attempting to import an xml file into the repository and have it shred into the object-relational tables. I registered a schema and it created object-relational xml_tables, triggers, and types. The full xml file is > 80MB. XDB created all the fields as VARCHAR2(4000).
error code when importing the full XML file. This is what I need to ultimately fix.
DECLARE
res BOOLEAN;
BEGIN
res := DBMS_XDB.createResource('/home/pharma/drugbank.xml',
bfilename('XMLPHARMA', 'drugbank.xml'),
nls_charset_id('AL32UTF8'));
END;
COMMIT;
XML file encounters errors on the import.
An error was encountered performing the requested operation
ORA-30951: Element or attribute at Xpath references exceeds maximum length
ORA-06512 at "XDB.DBMS_XDB", line 315
ORA-06512 at line 4
30951.00000 - "Element or attribute at Xpath %x exceeds maximum length"
*Cause: An attempt was made to insert a node of length exceeding the maximum length (specified by the maxLength facet) into an XML document.
*Action: Do not attempt to add a node exceeding the maximum length to XML documents.
Vendor code 30951Error at Line:18I would guess that some of the fields have max lengths > 4000. I plan to annotate the schema with SQLType="CLOB", but need to know which fields to change. I was able to copy the xml file and reduce that xml file to one record, which imported into the tables. My plan was to write a view over the bfile to get the lengths of certain fields, annotate the .xsd with CLOBS where needed, and then import again. In order to do that, I have a 1 record file imported into a table and as a bfile.
Here is my code selecting length from a generated object-relational table of only one record.
CREATE OR REPLACE VIEW pharma.drugs_vw AS
SELECT d.*
FROM drugs, XMLTABLE
('/drugs' PASSING OBJECT_VALUE COLUMNS
drugbank_id VARCHAR2(20) PATH 'drug/drugbank-id',
name VARCHAR2(50) PATH 'drug/name',
description VARCHAR2(4000) PATH 'drug/description'
) d
select max(length(drugbank_id)) as dbidlen,
max(length(name)) as nmlen,
max(length(description)) as desclen
from drugs_vw;
DBIDLEN NMLEN DESCLEN
7 9 229
1 row selected.Here is the code for the bfile. Same results, but using deprecated functions. I read the whitepaper, Oracle XML DB: Best practices to get optimal performance out of XML Queries. It says that extract(), extractvalue(), Table(XMLSequence()), and XMLType() are deprecated in 11gr2.
-- Note extractvalue is deprecated in 11gr2 replaced by W3C standard
-- XMLCast(XMLQuery())
-- TABLE(XMLSequence) is replaced by XMLTable
-- XMLType() is replaced by XMLParse()
SELECT max(length(extractvalue(column_value, '/drug/drugbank-id'))) dbidlen,
max(length(extractvalue(column_value, '/drug/name'))) nmlen,
max(length(extractvalue(column_value, '/drug/description'))) desclen
FROM TABLE(XMLSequence(XMLTYPE(bfilename('XMLPHARMA',
'db00001.xml'),nls_charset_id('AL32UTF8')).extract('/drugs/drug'))) d
WHERE ROWNUM <= 5;
DBIDLEN NMLEN DESCLEN
7 9 229Is this better code for getting the maximum length of xml fields from a bfile? Here is what I have so far. This works on a single drugbank-id.
SELECT max(length(drugbank_id)) AS dbidlen,
max(length(name)) AS nmlen,
max(length(description)) AS desclen
FROM (XMLTABLE('*'
PASSING (XMLType(bfilename('XMLPHARMA', 'db00001.xml'),nls_charset_id('AL32UTF8')))
COLUMNS
drugbank_id VARCHAR2(20) PATH 'drug/drugbank-id',
name VARCHAR2(50) PATH 'drug/name',
description VARCHAR2(4000) PATH 'drug/description'
);I try to run it on the full file and get this error
Error report:
SQL Error: ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00007: unexpected end-of-file encountered
31011. 00000 - "XML parsing failed"
*Cause: XML parser returned an error while trying to parse the document.
*Action: Check if the document to be parsed is valid.The code to create schema and object-relational tables. This worked fine.
set serveroutput on
-- Create resource file for schema
DECLARE
res BOOLEAN;
BEGIN
res := DBMS_XDB.createResource('/home/pharma/drugbank.xsd',
bfilename('XMLPHARMA', 'drugbank.xsd'),
nls_charset_id('AL32UTF8'));
COMMIT;
END;
-- optional debugging of create types and tables if you want a trace
ALTER SESSION SET EVENTS = '31098 TRACE NAME CONTEXT FOREVER';
BEGIN
DBMS_XMLSCHEMA.registerSchema(
SCHEMAURL => 'http://localhost:8080/home/pharma/drugbank.xsd',
SCHEMADOC => bfilename('XMLPHARMA', 'drugbank.xsd'),
CSID => nls_charset_id('AL32UTF8'),
LOCAL => TRUE,
GENTYPES => TRUE,
GENTABLES => TRUE,
OWNER => 'PHARMA');
COMMIT;
END;
SQL> select * from v$version;
BANNER
Oracle Database 11g Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - ProductionThe xml schema follows. Sorry about the length, but I think I might break something if I snipped it.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
>
<!-- General type definitions -->
<xs:simpleType name="DecimalOrEmptyType">
<xs:union memberTypes="xs:decimal EmptyStringType"/>
</xs:simpleType>
<xs:simpleType name="EmptyStringType">
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
<!-- Element Definitions -->
<!-- Drug secondary accession number definition begins -->
<xs:element name="secondary-accession-numbers" xdb:defaultTable="SECONDARY_ACCESSION_NUMBERS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="secondary-accession-number" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug secondary accession number definition ends -->
<!-- Drug groups definition begins -->
<xs:element name="groups" xdb:defaultTable="GROUPS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="group">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="approved"/>
<xs:enumeration value="illicit"/>
<xs:enumeration value="experimental"/>
<xs:enumeration value="withdrawn"/>
<xs:enumeration value="nutraceutical"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug groups definition ends -->
<!-- Drug taxonomy definition begins -->
<xs:element name="substructure">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="class" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="substructures" xdb:defaultTable="SUBSTRUCTURES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="substructure"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="taxonomy" xdb:defaultTable="TAXONOMY">
<xs:complexType>
<xs:sequence>
<xs:element name="kingdom" type="xs:string"/>
<xs:element ref="substructures"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug taxonomy definition ends -->
<!-- Drug brands definition begins -->
<xs:element name="brands" xdb:defaultTable="BRANDS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="brand" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug brands definition ends -->
<!-- Drug mixtures definition begins -->
<xs:element name="mixture">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="ingredients" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mixtures" xdb:defaultTable="MIXTURES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="mixture"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug mixtures definition ends -->
<!-- Drug packagers definition begins -->
<xs:element name="packager">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="url" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="packagers" xdb:defaultTable="PACKAGERS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="packager"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug packagers definition ends -->
<!-- Drug manufacturers definition begins -->
<xs:element name="manufacturer">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="generic" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="manufacturers" xdb:defaultTable="MANUFACTURERS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="manufacturer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug manufactures definition ends -->
<!-- Drug pricing definition begins -->
<xs:element name="cost">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="currency" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="price">
<xs:complexType>
<xs:sequence>
<xs:element name="description" type="xs:string"/>
<xs:element ref="cost"/>
<xs:element name="unit" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="prices" xdb:defaultTable="PRICES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="price"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug pricing definition ends -->
<!-- Drug categories definition begins -->
<xs:element name="categories" xdb:defaultTable="CATEGORIES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="category" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug categories definition ends -->
<!-- Drug affected orgainsms definition begins -->
<xs:element name="affected-organisms" xdb:defaultTable="AFFECTED_ORGANISMS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="affected-organism" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug affected organisms definition ends -->
<!-- Drug dosage definition begins -->
<xs:element name="dosage">
<xs:complexType>
<xs:sequence>
<xs:element name="form" type="xs:string"/>
<xs:element name="route" type="xs:string"/>
<xs:element name="strength" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dosages" xdb:defaultTable="DOSAGES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="dosage"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug dosages definition ends -->
<!-- Drug ATC codes definition begins -->
<xs:element name="atc-codes" xdb:defaultTable="ATC_CODES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="atc-code" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug ATC codes definition ends -->
<!-- Drug AHFS codes definition begins -->
<xs:element name="ahfs-codes" xdb:defaultTable="AHFS_CODES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="ahfs-code" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug AHFS codes definition ends -->
<!-- Drug Patent definition begins -->
<xs:element name="patent">
<xs:complexType>
<xs:sequence>
<xs:element name="number" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="approved" type="xs:string"/>
<xs:element name="expires" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="patents" xdb:defaultTable="PATENTS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="patent"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug patent definition ends -->
<!-- Drug food interactions definition begins -->
<xs:element name="food-interactions" xdb:defaultTable="FOOD_INTERACTIONS">
<xs:complexType>
<xs:sequence>
<xs:element name="food-interaction" type="xs:string" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug food interactions definition ends -->
<!-- Drug drug interactions definition begins -->
<xs:element name="drug-interaction">
<xs:complexType>
<xs:sequence>
<xs:element name="drug" type="xs:integer"/>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="drug-interactions" xdb:defaultTable="DRUG_INTERACTIONS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="drug-interaction"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug drug interactions definition ends -->
<!-- Drug protein sequences (biotech) definition begins -->
<xs:element name="protein-sequences" xdb:defaultTable="PROTEIN_SEQUENCES">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="protein-sequence" type="SequenceType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug protein sequences (biotech) definition ends-->
<!-- Drug external links definition begins -->
<xs:element name="external-link">
<xs:complexType>
<xs:sequence>
<xs:element name="resource" type="xs:string"/>
<xs:element name="url" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="external-links" xdb:defaultTable="EXTERNAL_LINKS">
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="external-link"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug external links definition ends -->
<!-- Drug targets definition begins -->
<xs:element name="targets" xdb:defaultTable="TARGETS">
<xs:complexType>
<xs:sequence>
<xs:element name="target" type="TargetBondType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug targets definition ends -->
<!-- Drug enzymes definition begins -->
<xs:element name="enzymes" xdb:defaultTable="ENZYMES">
<xs:complexType>
<xs:sequence>
<xs:element name="enzyme" type="BondType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug enzmes definition ends -->
<!-- Drug transporters definition begins -->
<xs:element name="transporters" xdb:defaultTable="TRANSPORTERS">
<xs:complexType>
<xs:sequence>
<xs:element name="transporter" type="BondType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug transporters definition ends -->
<!-- Drug carriers definition begins -->
<xs:element name="carriers" xdb:defaultTable="CARRIERS">
<xs:complexType>
<xs:sequence>
<xs:element name="carrier" type="BondType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Drug carriers definition ends -->
<!-- Partner Pfams definition begins -->
<xs:element name="pfam">
<xs:complexType>
<xs:sequence>
<xs:element name="identifier" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pfams" xdb:defaultTable="PFAMS">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="pfam"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Partner Pfams definition end -->
<!-- Partner GO Classification definition begins -->
<xs:element name="go-classifier">
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="go-classifiers" xdb:defaultTable="GO_CLASSIFIERS">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="go-classifier"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Partner GO Classification definition ends -->
<!-- Partner Essentiality definition begins -->
<xs:element name="essentiality">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Essential"/>
<xs:enumeration value="Non-Essential"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- Partner Essentiality definition ends -->
<!-- Complex Type Definitions -->
<xs:complexType name="SequenceType">
<xs:sequence>
<xs:element name="header" type="xs:string"/>
<xs:element name="chain" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PropertyType">
<xs:sequence>
<xs:element name="kind">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="logP"/>
<xs:enumeration value="logS"/>
<xs:enumeration value="logP/hydrophobicity"/>
<xs:enumeration value="Water Solubility"/>
<xs:enumeration value="caco2 Permeability"/>
<xs:enumeration value="pKa"/>
<xs:enumeration value="IUPAC Name"/>
<xs:enumeration value="Molecular Weight"/>
<xs:enumeration value="Monoisotopic Weight"/>
<xs:enumeration value="SMILES"/>
<xs:enumeration value="Molecular Formula"/>
<xs:enumeration value="InChI"/>
<xs:enumeration value="InChIKey"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="value" type="xs:string"/>
<xs:element name="source">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="JChem"/>
<xs:enumeration value="ALOGPS"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PropertiesType">
<xs:sequence>
<xs:element name="property" type="PropertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SynonymsType">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="synonym" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdentifiersType">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="external-identifier">
<xs:complexType>
<xs:sequence>
<xs:element name="resource" type="xs:string"/>
<xs:element name="identifier" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BondActionsType">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="action" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BondType">
<xs:sequence>
<xs:element name="actions" type="BondActionsType"/>
<xs:element name="references" type="xs:string"/>
</xs:sequence>
<xs:attribute name="position" type="xs:integer" use="optional"/>
<xs:attribute name="partner" type="xs:integer"/>
</xs:complexType>
<xs:complexType name="TargetBondType">
<xs:complexContent>
<xs:extension base="BondType">
<xs:sequence>
<xs:element name="known-action">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="yes"/>
<xs:enumeration value="no"/>
<xs:enumeration value="unknown"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PartnerType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="general-function" type="xs:string"/>
<xs:element name="specific-function" type="xs:string"/>
<xs:element name="gene-name" type="xs:string"/>
<xs:element name="locus" type="xs:string"/>
<xs:element name="reaction" type="xs:string"/>
<xs:element name="signals" type="xs:string"/>
<xs:element name="cellular-location" type="xs:string"/>
<xs:element name="transmembrane-regions" type="xs:string"/>
<xs:element name="theoretical-pi" type="DecimalOrEmptyType"/>
<xs:element name="molecular-weight" type="DecimalOrEmptyType"/>
<xs:element name="chromosome" type="xs:string"/>
<xs:element ref="essentiality"/>
<xs:element name="references" type="xs:string"/>
<xs:element name="external-identifiers" type="IdentifiersType"/>
<xs:element name="synonyms" type="SynonymsType"/>
<xs:element name="protein-sequence" type="SequenceType" minOccurs="0"/>
<xs:element name="gene-sequence" type="SequenceType" minOccurs="0"/>
<xs:element ref="pfams"/>
<xs:element ref="go-classifiers"/>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="DrugType">
<xs:sequence>
<xs:element name="drugbank-id" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="cas-number" type="xs:string"/>
<xs:element name="general-references" type="xs:string"/>
<xs:element name="synthesis-reference" type="xs:string"/>
<xs:element name="indication" type="xs:string"/>
<xs:element name="pharmacology" type="xs:string"/>
<xs:element name="mechanism-of-action" type="xs:string"/>
<xs:element name="toxicity" type="xs:string"/>
<xs:element name="biotransformation" type="xs:string"/>
<xs:element name="absorption" type="xs:string"/>
<xs:element name="half-life" type="xs:string"/>
<xs:element name="protein-binding" type="xs:string"/>
<xs:element name="route-of-elimination" type="xs:string"/>
<xs:element name="volume-of-distribution" type="xs:string"/>
<xs:element name="clearance" type="xs:string"/>
<xs:element ref="secondary-accession-numbers"/>
<xs:element ref="groups"/>
<xs:element ref="taxonomy"/>
<xs:element name="synonyms" type="SynonymsType"/>
<xs:element ref="brands"/>
<xs:element ref="mixtures"/>
<xs:element ref="packagers"/>
<xs:element ref="manufacturers"/>
<xs:element ref="prices"/>
<xs:element ref="categories"/>
<xs:element ref="affected-organisms"/>
<xs:element ref="dosages"/>
<xs:element ref="atc-codes"/>
<xs:element ref="ahfs-codes"/>
<xs:element ref="patents"/>
<xs:element ref="food-interactions"/>
<xs:element ref="drug-interactions"/>
<xs:element ref="protein-sequences" minOccurs="0"/><!-- Only present for biotech drugs -->
<xs:element name="calculated-properties" type="PropertiesType" minOccurs="0"/><!-- Only present for small molecule drugs -->
<xs:element name="experimental-properties" type="PropertiesType"/>
<xs:element name="external-identifiers" type="IdentifiersType"/>
<xs:element ref="external-links"/>
<xs:element ref="targets"/>
<xs:element ref="enzymes"/>
<xs:element ref="transporters"/>
<xs:element ref="carriers"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="small molecule"/>
<xs:enumeration value="biotech"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="updated" type="xs:string" use="required"/>
<xs:attribute name="created" type="xs:string" use="required"/>
<xs:attribute name="version" type="xs:decimal" use="required"/>
</xs:complexType>
<xs:element name="drugs" xdb:defaultTable="DRUGS">
<xs:complexType>
<xs:sequence>
<xs:element name="drug" type="DrugType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="partners">
<xs:complexType>
<xs:sequence>
<xs:element name="partner" type="PartnerType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:keyref name="targetPartnerIdKeyRef" refer="partnerIdKey">
<xs:selector xpath="drug/targets/*"/>
<xs:field xpath="@partner"/>
</xs:keyref>
<xs:keyref name="enzymePartnerIdKeyRef" refer="partnerIdKey">
<xs:selector xpath="drug/enzymes/*"/>
<xs:field xpath="@partner"/>
</xs:keyref>
<xs:keyref name="transporterPartnerIdKeyRef" refer="partnerIdKey">
<xs:selector xpath="drug/transporters/*"/>
<xs:field xpath="@partner"/>
</xs:keyref>
<xs:keyref name="carrierPartnerIdKeyRef" refer="partnerIdKey">
<xs:selector xpath="drug/carriers/*"/>
<xs:field xpath="@partner"/>
</xs:keyref>
<xs:key name="partnerIdKey">
<xs:selector xpath=".//partner"/>
<xs:field xpath="@id"/>
</xs:key>
</xs:element>
</xs:schema>Query optimizing whitepaper
http://www.oracle.com/technetwork/database/features/xmldb/xmlqueryoptimize11gr2-168036.pdfI attempted to insert the xml file into an xml table and into a relational table with an xml column both based on the schema. I get the same errors.
-This creates an XML table based on the schema successfully
CREATE TABLE pharma.drugs_xmltype OF XMLTYPE
XMLSCHEMA "http://localhost:8080/home/pharma/drugbank.xsd"
ELEMENT "drugs";
Table created.
Elapsed: 00:00:02.67
SQL>desc pharma.drugs_xmltype
Name Null? Type
TABLE of SYS.XMLTYPE(XMLSchema "http://localhost:8080/home/pharma/drugbank.xsd" Element "drugs") STORAGE Object-relational TYPE "drugs1200_T"-- it refers to these types
create or replace TYPE "drugs1200_T" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T","drug" "drug1201_COLL","partners" "partners1202_T")FINAL INSTANTIABLE
create or replace TYPE "drug1201_COLL" AS VARRAY(2147483647) OF "DrugType1121_T"
create or replace TYPE "partners1202_T" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T","partner" "partner1203_COLL")FINAL INSTANTIABLE
create or replace TYPE "partner1203_COLL" AS VARRAY(2147483647) OF "PartnerType1190_T"
create or replace TYPE "DrugType1121_T" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T","type" "XDB"."XDB$ENUM_T","updated" VARCHAR2(4000 CHAR),"created" VARCHAR2(4000 CHAR),"version" NUMBER,"drugbank-id" VARCHAR2(4000 CHAR),"name" VARCHAR2(4000 CHAR),"description" VARCHAR2(4000 CHAR),"cas-number" VARCHAR2(4000 CHAR),"general-references" VARCHAR2(4000 CHAR),"synthesis-reference" VARCHAR2(4000 CHAR),"indication" VARCHAR2(4000 CHAR),"pharmacology" VARCHAR2(4000 CHAR),"mechanism-of-action" VARCHAR2(4000 CHAR),"toxicity" VARCHAR2(4000 CHAR),"biotransformation" VARCHAR2(4000 CHAR),"absorption" VARCHAR2(4000 CHAR),"half-life" VARCHAR2(4000 CHAR),"protein-binding" VARCHAR2(4000 CHAR),"route-of-elimination" VARCHAR2(4000 CHAR),"volume-of-distribution" VARCHAR2(4000 CHAR),"clearance" VARCHAR2(4000 CHAR),"secondary-accession-numbers" "secondary-accession1122_T","groups" "groups1124_T","taxonomy" "taxonomy1126_T","synonyms" "SynonymsType1131_T","brands" "brands1132_T","mixtures" "mixtures1133_T","packagers" "packagers1137_T","manufacturers" "manufacturers1141_T","prices" "prices1145_T","categories" "categories1151_T","affected-organisms" "affected-organisms1152_T","dosages" "dosages1153_T","atc-codes" "atc-codes1157_T","ahfs-codes" "ahfs-codes1158_T","patents" "patents1159_T","food-interactions" "food-interactions1163_T","drug-interactions" "drug-interactions1164_T","protein-sequences" "protein-sequences1168_T","calculated-properties" "PropertiesType1171_T","experimental-properties" "PropertiesType1171_T","external-identifiers" "IdentifiersType1174_T","external-links" "external-links1177_T","targets" "targets1181_T","enzymes" "enzymes1186_T","transporters" "transporters1188_T","carriers" "carriers1189_T")NOT FINAL INSTANTIABLE -- drugs type
PHARMA@scidev> desc "drugs1200_T"
Name Null? Type
SYS_XDBPD$ XDB.XDB$RAW_LIST_T
drug drug1201_COLL
partners partners1202_T-- I planned to insert using a subselect and got the same error on the select.
Error starting at line 1 in command:
SELECT max(length(drugbank_id)) AS dbidlen
FROM (XMLTABLE('*'
PASSING (XMLType(bfilename('XMLPHARMA', 'drugbank.xml'),nls_charset_id('AL32UTF8')))
COLUMNS
drugbank_id VARCHAR2(20) PATH 'drug/drugbank-id'
Error report:
SQL Error: ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00007: unexpected end-of-file encountered
31011. 00000 - "XML parsing failed"
*Cause: XML parser returned an error while trying to parse the document.
*Action: Check if the document to be parsed is valid.--This creates a row in the xmltype table from a single drug file.
INSERT INTO drugs_xmltype
VALUES(XMLType(bfilename('XMLPHARMA', 'db00001.xml'),nls_charset_id('AL32UTF8')).CreateSchemaBasedXML(
'http://localhost:8080/home/pharma/drugbank.xsd'))
;-- The create using the full xml file fails.
INSERT INTO drugs_xmltype
VALUES(XMLType(bfilename('XMLPHARMA', 'drugbank.xml'),nls_charset_id('AL32UTF8')).CreateSchemaBasedXML(
'http://localhost:8080/home/pharma/drugbank.xsd'))
VALUES(XMLType(bfilename('XMLPHARMA', 'drugbank.xml'),nls_charset_id('AL32UTF8')).CreateSchemaBasedXML(
ERROR at line 2:
ORA-30951: Element or attribute at Xpath references exceeds maximum length
Elapsed: 00:01:17.90-- Then I tried the same using a relational table with an xml column
-- Then I created a relational table with an xml column
CREATE TABLE pharma.drugs_xmlcolumn_type (drug_xml XMLTYPE)
XMLTYPE COLUMN drug_xml STORE AS OBJECT RELATIONAL
XMLSCHEMA "http://localhost:8080/home/pharma/drugbank.xsd"
ELEMENT "drugs";
CREATE TABLE succeeded.--This command refers to the following types
SYS.XMLTYPE(XMLSchema "http://localhost:8080/home/pharma/drugbank.xsd" Element "drugs" ) STORAGE Object-relational TYPE "drugs1200_T"-- This creates a row in the xmlcolumn table from a single drug file.
INSERT INTO drugs_xmlcolumn_type
VALUES(XMLType(bfilename('XMLPHARMA', 'db00001.xml'),nls_charset_id('AL32UTF8')).CreateSchemaBasedXML(
'http://localhost:8080/home/pharma/drugbank.xsd'))
;--The create using the full xml file into a relational table with an xml column fails
INSERT INTO drugs_xmlcolumn_type
VALUES(XMLType(bfilename('XMLPHARMA', 'drugbank.xml'),nls_charset_id('AL32UTF8')).CreateSchemaBasedXML(
'http://localhost:8080/home/pharma/drugbank.xsd'))
VALUES(XMLType(bfilename('XMLPHARMA', 'drugbank.xml'),nls_charset_id('AL32UTF8')).CreateSchemaBasedXML(
ERROR at line 2:
ORA-30951: Element or attribute at Xpath references exceeds maximum length
Elapsed: 00:01:06.74 -
Regarding HANA concept clarification
hi
I have two questions from TZHANA materials. Need more understanding about HANA
pls let me know if you have more details on this
1) regarding EDW and LSA Architecture.
For certain requirements, the role of the classical Reporting layer
(query optimized InfoCubes) might diminish. DataStore Object might
be able to provide sufficient query performance to omit InfoCubes.
So does this mean inmemory DSO will replace inmemory infocubes infuture?
pls can you give me reason why infocubes will be dropped and so reporting layer does not exist in LSA.
When is this scenario possible?
2)I could not find more explaination about DB connect archicture in topic of consuming HANA models.
What does the Architecture picture says?
DB Connect driver is required for HBD case and not required for other than HDB case?
Pls confirm
Regards
MagalingamHi Vishal,
Well, I believe, one of the major differences between a normal DSO and an in-memory DSO is that a normal DSO would hold data and an in-memory DSO is just a view.
It seems that we are seeing a lot of statements like the above quote in this thread, but as far as I can tell this is simply not true. For DSOs that are configured as "in-memory" or "Hana optimized" in BW on Hana, there is certainly data stored in a materialized table. There are also views that are generated in many cases, specifically for the changelog. You can read about this here: [http://help.sap.com/saphelp_nw73/helpdata/en/32/5e81c7f25e44abb6053251c0c763f7/frameset.htm]
The same is true in the case of InfoCubes, where all SIDs and key figure values are written into a wide version of the fact table. That information is available here: [http://help.sap.com/saphelp_nw73/helpdata/en/e1/5282890fb846899182bc1136918459/frameset.htm]
Maybe I'm just not understanding what you mean by "just a view", but when I read this I normally think that there is no data held in a table associated with the object. This is not the case as far as I have learned.
Cheers,
Ethan -
SQL Tuning Advisor comphrehensive mode
SQL profiling:
the ATO verifies its own estimates and collects auxiliary information
to remove estimation errors.it builds a SQL profile using the auxiliary
information and makes a recommendation to create it.when a SQL profile is
created,it enables the query optimer to generate a well-tuned plan.
questions:
how long will the effect of SQL profile last for?
and is there any dictionary view to the SQL PROFILE out in details?NO it does not ... See my test below
1 begin
2 dbms_sqltune.import_sql_profile(
3 name=>'prof1',
4 category=>'KARAN',
5 sql_text=>'select * from scott.emp',
6 profile=> sqlprof_attr('first_rows(2)'));
7* end;
SQL> /
PL/SQL procedure successfully completed.
SQL> select name,category,status,force_matching from dba_sql_profiles where name='prof1';
NAME CATEGORY STATUS FOR
prof1 KARAN ENABLED NO
SQL> startup force
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 725616672 bytes
Database Buffers 104857600 bytes
Redo Buffers 2412544 bytes
Database mounted.
Database opened.
SQL> select name,category,status,force_matching from dba_sql_profiles where name='prof1';
NAME CATEGORY STATUS FOR
prof1 KARAN ENABLED NO
Regards
Karan -
Oracle tuning question or any alternate solution
All Oracle Guru I need your help in solving this problem. I am simplifying this problem to make it easy to understand. Let's start. For example we have two Tables.
Table one which stores data when one user access any dir on Unix sever has following columns
Table one
Request Date Server Name Dir Accessed User ID
8/1/2005 12:00:00 PM COBRA-65 root conny
8/2/2005 13:00:00 PM PANTHER-98 opt conny
8/9/2005 23:00:00 PM COBRA-965 opt conny
6/4/2005 22:00:00 PM COBRA-73 shared conny
10/7/2005 23:00:00 PM PANTHER-98 bin conny
10/7/2005 23:00:00 PM PANTHER-98 bin conny
This table gets around 6 to 8 Million records every day and we have data for around 3 months. Total around 650 M Records. Now our users want to access this data and find out who is accessing what on a monthly basis. Requirement is that user will define a application and tell us server name and dir he wants to associate to that application name. So we created another table: - Table two and here is column list for this table.
Table Two
Application Name Server Name Dir Accessed
COBRA-ROOT COBRA73 shared
PANTHER-OPT PANTHER-98 opt
PANTHER-BIN PANTHER-98 bin
Now we can not let user run ad hock queries on a table with 650 M records so we decided to create a aggregation table and store monthly data into this table where user can query them .
AGGR_TABLE
Application Name Request Month User ID Total Hits
COBRA-ROOT Jun-05 conny 1
PANTHER-OPT Aug-05 conny 1
PANTHER-BIN Oct-05 conny 2
Now to fill this aggregation table we need to run a monthly aggregation query and her is that query
SELECT B.Application_name APPLICATION_NAME,
TO_DATE(TO_CHAR(A.REQUEST_DATE,'MON-YYYY'),'MON-YYYY') REQUEST_DATE,
A.User ID ,
count(*) TOTAL_NUMBER_OF_HITS
FROM Table Two Table One A
WHERE A.REQUEST_DATE >= trunc(sysdate,'DD')
AND A.REQUEST_DATE < truncadd_Month(sysdate,1),'DD')
AND A.Server Name = B.Server Name
AND A.Dir Accessed = B.Dir Accessed
GROUP BY B.APPLICATION_SECTION,
B.DATA_SOURCE,B.Application_name ,
TO_DATE(TO_CHAR(A.REQUEST_DATE,'MON-YYYY'),'MON-YYYY'),
A.PMDS_PERSON_NUM_SSO
ORDER BY B.Application_name
Now the problem is that this query takes forever too return. Sometime more then 72 hours.. We cannot do incremental updates as minimum we can do is month and if we do increment then we will not be able to collect historical data. This data will grow and we are planning to have 12 month retention..
Any help on query optimizing or any alternate direction will be real help.. Ones again because of company confidentiality I have to change the real table names and query and it is little bit more complicated then I showed you in above example but concept is the same. I will appreciate if any one can help us in any way.
Thanks
TKYou'll need an pk/fk relationship between your tables for a fast refresh to be possible.
-
Timout dump when accessing BSIS
Hello frnds,
I m accessing bsis table with this query.
select bukrs hkont augdt augbl zuonr gjahr belnr buzei bschl
dmbtr prctr
from bsis into table i_temp2
for all entries in i_belnr2
where bukrs eq company
and hkont in r_hkont
and belnr = i_belnr2-belnr
and budat in date.
i_belnr2 contains some 3k records.
I m getting a time out dump after 25 mins...
Can anyone pls suggest me is there any way that
i can make this query optimized ?
or any function modules for this specific i/p and o/p parameters?
or any logical database ?
Rgds,
Santhosini KHi,
Check the sample code and proceed accordingly to optimize the Query on BSIS Table.
REPORT ztest NO STANDARD PAGE HEADING LINE-SIZE 80 MESSAGE-ID 00.
TABLES: bkpf, bseg, bsis.
DATA: bkpf_int TYPE TABLE OF bkpf WITH HEADER LINE,
bseg_int TYPE TABLE OF bseg WITH HEADER LINE,
bsis_int TYPE TABLE OF bsis WITH HEADER LINE,
BEGIN OF i_indata1 OCCURS 0,
t_pdate TYPE bkpf-budat,
t_kioid TYPE bseg-zuonr,
END OF i_indata1.
SELECT bukrs belnr gjahr budat
FROM bkpf INTO CORRESPONDING FIELDS OF TABLE bkpf_int
FOR ALL ENTRIES IN i_indata1
WHERE bukrs = 'BP01' AND
bstat IN (' ', 'A', 'B', 'D', 'M', 'S', 'V', 'W', 'Z') AND
gjahr = sy-datum+0(4) AND
budat = i_indata1-t_pdate.
SELECT bukrs belnr gjahr buzei zuonr wrbtr shkzg
FROM bseg INTO CORRESPONDING FIELDS OF TABLE bseg_int
FOR ALL ENTRIES IN bkpf_int
WHERE bukrs = bkpf_int-bukrs AND
belnr = bkpf_int-belnr AND
gjahr = bkpf_int-gjahr AND
koart = 'S'. "GL Accounts
SORT: bkpf_int BY bukrs belnr gjahr,
bseg_int BY bukrs belnr gjahr buzei,
i_indata1 BY t_kioid.
LOOP AT bseg_int.
READ TABLE i_indata1 WITH KEY
t_kioid = bseg_int-zuonr
BINARY SEARCH.
CHECK sy-subrc = 0.
READ TABLE bkpf_int WITH KEY
bukrs = bseg_int-bukrs
belnr = bseg_int-belnr
gjahr = bseg_int-gjahr
BINARY SEARCH.
CHECK sy-subrc = 0.
MOVE: bkpf_int-budat TO bsis_int-budat,
bseg_int-zuonr TO bsis_int-zuonr,
bseg_int-wrbtr TO bsis_int-wrbtr,
bseg_int-shkzg TO bsis_int-shkzg.
APPEND bsis_int.
ENDLOOP.
[/code]
Regards,
Raj -
Optimizing an SQL Query using Oracle SQL Developer
Hi ,
Currently i am using Oracle SQL Developer as my Database IDE .
Is it possible to use Orqcles SQLDeveloper for the purpose of Optimizing an SQL Query ??
For example assume i am having a query as :
Select from Tranac_Master where CUST_STATAUS='Y' and JCC_REPORT='N'*
Could anybody please tell me how can i use Oracle SQL Developer to optimize this query or any other SQL queries ??
Please share your ideas , thanks in advance .1. Your query looks very simplistic as it is, so I fail to see how you can better optimise it (unless 'Tranac_Master' is a view, in which case I'd need to see the view details).
2. No tool can automagically optimise your SQL to any degree of practical use. Very minor adjustments may be possible automatically, but really it is a question of you knowing your data & database design accurately, and then you applying your expert knowledge to tune it. -
Plz help in optimizing the query
I have a query which is written to cater to the scenario that the entered start and end date do not overlap with the start and end date already present in the database records. Can someone help in optimizing this query. all inclusion and exclusion scenario's have to be taken care of.
the query is as follows:
SELECT COUNT(*) FROM CLAS WHERE TRIM(UPPER(CLAS_CDE)) =UPPER('timecheck') AND TRIM(UPPER(CLAS_TYPE_CDE))=UPPER('TEST_3')
AND TRIM(UPPER(LANG_CDE))=UPPER('en')
AND (
(END_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
OR
(START_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
OR (
(START_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
AND
(END_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
OR(('09/13/2007' BETWEEN TO_CHAR(START_DT,'MM/DD/YYYY') AND TO_CHAR(END_DT,'MM/DD/YYYY'))
AND ('09/15/2007' BETWEEN TO_CHAR(START_DT,'MM/DD/YYYY') AND TO_CHAR(END_DT,'MM/DD/YYYY'))
);I format your code in different way:
SELECT COUNT(*)
FROM CLAS
WHERE TRIM(UPPER(CLAS_CDE)) = UPPER('timecheck')
AND TRIM(UPPER(CLAS_TYPE_CDE))=UPPER('TEST_3')
AND TRIM(UPPER(LANG_CDE))=UPPER('en')
AND (
(END_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
OR
(START_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
OR (
(START_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
AND
(END_DT BETWEEN TO_DATE('09/13/2007','MM/DD/YYYY') AND TO_DATE('09/15/2007','MM/DD/YYYY'))
OR (
('09/13/2007' BETWEEN TO_CHAR(START_DT,'MM/DD/YYYY') AND TO_CHAR(END_DT,'MM/DD/YYYY'))
AND
('09/15/2007' BETWEEN TO_CHAR(START_DT,'MM/DD/YYYY') AND TO_CHAR(END_DT,'MM/DD/YYYY'))
);First thought that cross my mind it to check if changing this:
UPPER('timecheck') to simple:
'TIMECHECK' and do the same with other expressions with UPPER function.
Peter D. -
Optimized query to find Min and max of a col in a table
I have a table doc_boe_rec with record count 12375934
the primary key columns are (boe_rec_id,psd_serial_num).
No other ndexes are present on this table.
I want an optimized query which will give both the results :
1.Min boe_rec_id (boe_rec_id from 1st record)
2.Max boe_rec_id from this table with rows limited to a value say 5000.
i.e (boe_rec_id from 5000th column value from table )
Thanks
Manoj1.Min boe_rec_id (boe_rec_id from 1st record)It is confusing for me. The min value for the first, hmmm...
2.Max boe_rec_id from this table with rows limited to a value say 5000.Not more clear...
Please details your requirements.
Nicolas. -
Conversion away from column type may result in sub-optimal query plan
Hello all,
I have the following select statement in a cursor compiled in a package.
SELECT id
FROM table
WHERE TRUNC(ts) >= TRUNC(SYSDATE - p_days)
However I get 4 warnings that read:
PLW-07204: conversion away from column type may result in sub-optimal query plan
Does anyone know of a way to rewrite the query to avoid the compilation warnings?
I'm just trying to compare the date without the time...
Thanks in advance
DanFor what it is worth, whenever you compare a date column to either sysdate or any built-in function returning a date you will get that warning.
SQL> desc t
Name Null? Type
ID NUMBER
DT DATE
SQL> SELECT DUMP(dt), DUMP(trunc(dt)), dump(sysdate)
2 FROM t;
DUMP(DT) DUMP(TRUNC(DT)) DUMP(SYSDATE)
Typ=12 Len=7: 120,107,7,12,15,16,43 Typ=13 Len=8: 7,215,7,12,0,0,0,0 Typ=13 Len=8: 7,215,7,12,14,16,11,0But,
SQL> CREATE FUNCTION f(p_v IN VARCHAR2) RETURN DATE AS
2 BEGIN
3 RETURN TO_DATE(p_v, 'dd-mon-yyyy');
4 END;
5 /
Function created.
SQL> SELECT DUMP(f('01-jan-2000')) FROM dual;
DUMP(F('01-JAN-2000'))
Typ=12 Len=7: 120,100,1,1,1,1,1John -
Revision: 13412
Revision: 13412
Author: [email protected]
Date: 2010-01-11 02:02:20 -0800 (Mon, 11 Jan 2010)
Log Message:
WebPlayer: optimizing JS code to forward all query string parameters to WebPlayer.swf.
Modified Paths:
osmf/trunk/apps/samples/framework/WebPlayer/html-template/index.template.html
osmf/trunk/apps/samples/framework/WebPlayer/src/Configuration.asls -l /var/run/lighttpd/
And how are you spawning the php instances? I don't see that in the daemons array anywhere.
EDIT: It looks like the info in that page is no longer using pre-spawned instances, but lighttpd adaptive-spawn. The documentation has been made inconsistent it looks like.
You will note that with pre-spawned information, the config looks different[1].
You need to do one or the other, not both (eg. choose adaptive-spawn, or pre-spawn..not both).
[1]: http://wiki.archlinux.org/index.php?tit … oldid=8051 "change"
Maybe you are looking for
-
Pages 5.0, hyperlinks, PDF file, links don't work
I upgraded to pages 5.0. My documents have many hyperlinks. When I convert them to PDF files the hyperlinks don't work in the pdf files. In pages: file > export > pdf > best image quality then to desktop. The links work on page 1 of the pdf file but
-
Hello All, I picked up a T400 way back in the summer, but I had just recently noticed that there're a patch of bright pixels near the bottom left of my screen. I have the WXGA+ LED backlight screen. The pixels aren't dead as they still still show col
-
How do I get steam to work with lion?
How do I get Steam to install with Lion? Worked ok with Snow Leopard.
-
How can i access to components of a table?
Hi, I have a table and i need to set to some componen's value in the prerrender method. Some components are asociated with the database and others not (i want to modify the second case) . I dont want to modify all rows. What sould i do? Thanks in adv
-
Hi, I have a big big big problem. I want to execute an ant file (example: build.xml) from flex-air application, by clicking a button for example. Is there at least a way to make what I asking for? Tank you Marco