Relational databases are designed to optimize joins, so DataDirect XQuery leverages the database when an XQuery join involves SQL data. Performing all the joins in the database results in a dramatic performance gain, because DataDirect XQuery simply uses the SQL engine in your database.
Example 4. Join Pushdown
XQuery
for $u in collection('USERS')/USERS
for $h in collection('HOLDINGS')/HOLDINGS
where $u/USERID = $h/USERID
return <holding name="{$u/LASTNAME}">{$h/SHARES/text()}</holding>
Generated SQL
SELECT ALL
nrm5."LASTNAME" AS RACOL1,
nrm9."SHARES" AS RACOL2
FROM
"PEPPINO"."USERS" nrm5,
"PEPPINO"."HOLDINGS" nrm9
WHERE
nrm5."USERID" = nrm9."USERID" AND
LENGTH(nrm5."USERID") = LENGTH(nrm9."USERID")
| Previous Quantifiers | Home | Next Sorting Data |