[
https://issues.redhat.com/browse/TEIID-5903?page=com.atlassian.jira.plugi...
]
Steven Hawkins edited comment on TEIID-5903 at 2/13/20 10:18 AM:
-----------------------------------------------------------------
makedep is not necessary here as this will pushdown as a single query. Your total time
includes planning and establishing a connection. Teiid spring boot does not have pooling
for non-jdbc connections TEIIDSB-163, so you will incur that connection cost on each query
after TEIIDSB-158. You can eliminate the planning time (which should be very small) by
using a prepared statement.
was (Author: shawkins):
makedep is not necessary here as this will pushdown as a single query. Your total time
includes planning and establishing a connection. Teiid spring boot does not have pooling
for non-jdbc connections TEIIDTSB-163, so you will incur that connection cost on each
query after TEIIDSB-158. You can eliminate the planning time (which should be very small)
by using a prepared statement.
Performance problems
--------------------
Key: TEIID-5903
URL:
https://issues.redhat.com/browse/TEIID-5903
Project: Teiid
Issue Type: Enhancement
Components: Salesforce Connector
Affects Versions: 13.0.2
Reporter: Renat Eskenin
Assignee: Steven Hawkins
Priority: Major
If we call SOQL
{code:sql}
SELECT Account.BillingCountry__c, Account.Name from Contact LIMIT 1
{code}
We have time in salesforce workbench (UI for SOAP): Returned records 1 - 1 of 1 total
record in 0.947 seconds:
If we call SQL over teiid spring salesforce example:
{code:sql}
SELECT Account.BillingCountry__c, Account.Name from Contact LEFT OUTER JOIN /*+ MAKEDEP
*/ Account
on Contact.AccountId = Account.id
LIMIT 1
{code}
we have request time: Time from sf:3.561s
How we can optimize request time?
We used
{code}
@Autowired
private DataSource sfds;
@Bean
@Primary
public NamedParameterJdbcTemplate getSfNamedParameterJdbcTemplate() {
return new NamedParameterJdbcTemplate(sfds);
}
{code}
And
{code}
@Autowired
private NamedParameterJdbcTemplate sftemplate;
long start = System.currentTimeMillis();
SqlRowSet rowSet = jdbcTemplate.queryForRowSet(sql, params);
log.info("Time from {}:{}", sourceName, (((double) (System.currentTimeMillis()
- start)) / 1000.0d));
{code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)