× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



here is what I have found so far
(terrifies me that this may be "normal")
(think of Prof. Nathaniel Burke of Farmers Insurance)...

what the PHP file says is the SQL statement is this:
$sql = "select pdatalib.amh.amhref, pdatalib.amh.amhtda, pdatalib.amh.amhcda, pdatalib.amh.amhsts, pdatalib.avm.vendor,
pdatalib.avm.vndnam, pdatalib.aph.apcina, pdatalib.aph.apcdav, pdatalib.aph.apcamp, pdatalib.aph.ainvdt,
pdatalib.aph.appord, pdatalib.aph.apinv
from pdatalib.aml
left join pdatalib.amh on amlref = amhref and amlvnd = amhvnd
left join pdatalib.avm on amlvnd = vendor
left join pdatalib.aph on amlinv = apinv and amlvnd = aphpnd
where $where and AMLLTP = 'I'";




... but what SQL Plan cache statements says _ran_ is THIS:

SELECT AMLREF,AMHTDA,AMHCDA,AMHSTS,VENDOR,VNDNAM,APCINA,APCDAV,APCAMP,AINVDT,APPORD,APINV from (select row_number() over (ORDER BY AMHTDA desc, AMLREF desc) as row_number,coalesce(AMLREF,?) as AMLREF,coalesce(AMHTDA,?) as AMHTDA,AMHCDA,AMHSTS,VENDOR,VNDNAM,APCINA,APCDAV,APCAMP,AINVDT,APPORD,APINV FROM pdatalib.aph join pdatalib.avm on apvndr=vendor left join pdatalib.aml on apinv = amlinv and apvndr = AMLIVN and APHPND = amlvnd left join pdatalib.amh on amhref = amlref and amhvnd = amlvnd Where vendor = ?and (ainvdt >=? and ainvdt <= ?)and (AMLLTP = ? or AMLLTP is NULL)) as a where row_number between ? and ? ORDER BY AMHTDA desc, AMLREF desc;





On 1/14/2015 3:13 PM, Gqcy wrote:
yes, I am surprised...
however, as I look deeper, and click "show statements" (most of these
statements are from our windows PHP (via ODBC) processes)... I do see
"DESC" on lots of those SQL's....
However, I ask around our PHP developers....
"we NEVER do that"
"I did that ONE TIME, long ago..."

I am doing a grep on our php code to see how prevalent this really is.



On 1/14/2015 2:54 PM, John Yeung wrote:
On Wed, Jan 14, 2015 at 3:05 PM, Vernon Hamberg
<vhamberg@xxxxxxxxxxxxxxx> wrote:
Strictly speaking, the optimizer can use an ASC key to return rows in
DESC
order pretty efficiently - just start at the end and go backwards. Like
SETGT and READPE using an ASCending key LF.

This is exactly why OP is asking why DESC is being called for. If
ascending and descending are close enough to equivalent, why prefer
DESC?

Also, from OP's apparent level of surprise, I would guess he either
doesn't have anything that explicitly asks for descending order, or he
has a mix of ascending and descending.

John Y.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.