How to compare to query definitions ?
Hello community of experts,
Does anyone know how to compare two query definitions without looking at either the query builder or query results?
I want to prove that two queries are identical only by looking at the BW system itself.
BACKGROUND
For `certifying` queries that were developed directly in production we have the practice of transporting queries backwards to development, renaming them to a new namespace, and then transporting them forward to production again.
The queries that were transported up from the dev system cannot be changed in the prod system (except by another transport, and this makes those queries `certified`).
My goal is to automate the proof, making it easier to create the test documents required for transporting out of development again.
If we can proove that the query being transported out has the same query definition as the query the user wrote in production, then life will be a lot easier.
The query definitions are complex, which means eyeballing the query builder isn't reliable. And often the DEV & QA systems don't have the data needed for comparing the query results.
Thanks for your help!
Keith
I used the following:
rszcomdir
rsrrepdir
rszeltxref
rszeltdir
rszelttxt
rszcel
rszcalc
rszselect
rszrange
rszopratxt
the SAP transaction uses function module RSZ_DB_ELT_GET (it might already be available in 3.5... but then again, it might not)
good luck!
Similar Messages
-
How to compare the query definiation of two or more queries?
HI Folks.
I am attempting to determine if there is a method by which I can compare query definination of two or more queries or shows me the differences between queries.
Transaction RSRTQ only give the query details of single query at a time and doesnot do a comparison.
Please let me know a method to undertake this?
Thanks
UdayThere is no straight way of doing this:
I normally open the definitions in 2 sessions and compare them manually.
Hope this helps -
How to compare char and numc in select query
Hi Experts,
I am using For all entries to combine two tables.
I want to fetch the data from these tables.
The field in one table char, and in another the field is numc.
1st Query from table BDCP2 and get the tabkey value is like (2000000000000000000086200000000000000000000)
2nd query For all entries found,
query table ESTMJ with the following parameter.
ESTMJ-RECN = BDCP2-TABKEY+3(20)
1.TABKEY CHAR 254
2.RECN NUMC 20
How to compare these two ?
Regards,
Bindhu Priya.for two fields numc & char , please check out their Conversion routine in their respective Database table.
1st in SE11-> enter table names in different sessions. and check out the data domain used by this fields
In their respective domains of fields, click on tab 'DEFINITIONS', then check out the conversion routines in Output Characteristics of the Data Domain of field
From my point of view, both the Conversion routines should be the same.
If Conversion Routines are not there, then insert suitable Conversion routine for both the fields domain
For help for for conversion routines:
conversion routine
http://help.sap.com/saphelp_46c/helpdata/en/cf/21ee19446011d189700000e8322d00/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/35/26b217afab52b9e10000009b38f974/content.htm
http://abaplovers.blogspot.com/2008/03/conversion-routines-in-sap.html
hope this solution could solve your issue..
<begging removed by moderator>
Gaur Mayank
Edited by: Gaur Mayank on Nov 5, 2011 10:40 AM
Edited by: Thomas Zloch on Nov 6, 2011 3:59 PM -
How to compare result from sql query with data writen in html input tag?
how to compare result
from sql query with data
writen in html input tag?
I need to compare
user and password in html form
with all user and password in database
how to do this?
or put the resulr from sql query
in array
please help me?Hi dejani
first get the user name and password enter by the user
using
String sUsername=request.getParameter("name of the textfield");
String sPassword=request.getParameter("name of the textfield");
after executeQuery() statement
int exist=0;
while(rs.next())
String sUserId= rs.getString("username");
String sPass_wd= rs.getString("password");
if(sUserId.equals(sUsername) && sPass_wd.equals(sPassword))
exist=1;
if(exist==1)
out.println("user exist");
else
out.println("not exist"); -
How to compare same SQL query performance in different DB servers.
We have Production and Validation Environment of Oracle11g DB on two Solaris OSs.
H/W and DB,etc configurations of two Oracle DBs are almost same in PROD and VAL.
But we detected large SQL query performace difference in PROD DB and VAL DB in same SQL query.
I would like to find and solve the cause of this situation.
How could I do that ?
I plan to compare SQL execution plan in PROD and VAL DB and index fragmentations.
Before that I thought I need to keep same condition of DB statistics information in PROD and VAL DB.
So, I plan to execute alter system FLUSH BUFFER_CACHE;
But I am worring about bad effects of alter system FLUSH BUFFER_CACHE; to end users
If we did alter system FLUSH BUFFER_CACHE; and got execution plan of that SQL query in the time end users do not use that system ,
there is not large bad effect to end users after those operations?
Could you please let me know the recomendation to compare SQL query performace ?Thank you.
I got AWR report for only VAL DB server but it looks strange.
Is there any thing wrong in DB or how to get AWR report ?
Host Name
Platform
CPUs
Cores
Sockets
Memory (GB)
xxxx
Solaris[tm] OE (64-bit)
.00
Snap Id
Snap Time
Sessions
Cursors/Session
Begin Snap:
xxxx
13-Apr-15 04:00:04
End Snap:
xxxx
14-Apr-15 04:00:22
Elapsed:
1,440.30 (mins)
DB Time:
0.00 (mins)
Report Summary
Cache Sizes
Begin
End
Buffer Cache:
M
M
Std Block Size:
K
Shared Pool Size:
0M
0M
Log Buffer:
K
Load Profile
Per Second
Per Transaction
Per Exec
Per Call
DB Time(s):
0.0
0.0
0.00
0.00
DB CPU(s):
0.0
0.0
0.00
0.00
Redo size:
Logical reads:
0.0
1.0
Block changes:
0.0
1.0
Physical reads:
0.0
1.0
Physical writes:
0.0
1.0
User calls:
0.0
1.0
Parses:
0.0
1.0
Hard parses:
W/A MB processed:
16.7
1,442,472.0
Logons:
Executes:
0.0
1.0
Rollbacks:
Transactions:
0.0
Instance Efficiency Percentages (Target 100%)
Buffer Nowait %:
Redo NoWait %:
Buffer Hit %:
In-memory Sort %:
Library Hit %:
96.69
Soft Parse %:
Execute to Parse %:
0.00
Latch Hit %:
Parse CPU to Parse Elapsd %:
% Non-Parse CPU:
Shared Pool Statistics
Begin
End
Memory Usage %:
% SQL with executions>1:
34.82
48.31
% Memory for SQL w/exec>1:
63.66
73.05
Top 5 Timed Foreground Events
Event
Waits
Time(s)
Avg wait (ms)
% DB time
Wait Class
DB CPU
0
100.00
Host CPU (CPUs: Cores: Sockets: )
Load Average Begin
Load Average End
%User
%System
%WIO
%Idle
Instance CPU
%Total CPU
%Busy CPU
%DB time waiting for CPU (Resource Manager)
Memory Statistics
Begin
End
Host Mem (MB):
SGA use (MB):
46,336.0
46,336.0
PGA use (MB):
713.6
662.6
% Host Mem used for SGA+PGA:
Time Model Statistics
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Operating System Statistics
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Operating System Statistics - Detail
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Foreground Wait Class
s - second, ms - millisecond - 1000th of a second
ordered by wait time desc, waits desc
%Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
Captured Time accounts for % of Total DB time .00 (s)
Total FG Wait Time: (s) DB CPU time: .00 (s)
Wait Class
Waits
%Time -outs
Total Wait Time (s)
Avg wait (ms)
%DB time
DB CPU
0
100.00
Back to Wait Events Statistics
Back to Top
Foreground Wait Events
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Background Wait Events
ordered by wait time desc, waits desc (idle events last)
Only events with Total Wait Time (s) >= .001 are shown
%Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
Event
Waits
%Time -outs
Total Wait Time (s)
Avg wait (ms)
Waits /txn
% bg time
log file parallel write
527,034
0
2,209
4
527,034.00
db file parallel write
381,966
0
249
1
381,966.00
os thread startup
2,650
0
151
57
2,650.00
latch: messages
125,526
0
89
1
125,526.00
control file sequential read
148,662
0
54
0
148,662.00
control file parallel write
41,935
0
28
1
41,935.00
Log archive I/O
5,070
0
14
3
5,070.00
Disk file operations I/O
8,091
0
10
1
8,091.00
log file sequential read
3,024
0
6
2
3,024.00
db file sequential read
1,299
0
2
2
1,299.00
latch: shared pool
722
0
1
1
722.00
enq: CF - contention
4
0
1
208
4.00
reliable message
1,316
0
1
1
1,316.00
log file sync
71
0
1
9
71.00
enq: CR - block range reuse ckpt
36
0
0
13
36.00
enq: JS - queue lock
459
0
0
1
459.00
log file single write
414
0
0
1
414.00
enq: PR - contention
5
0
0
57
5.00
asynch descriptor resize
67,076
100
0
0
67,076.00
LGWR wait for redo copy
5,184
0
0
0
5,184.00
rdbms ipc reply
1,234
0
0
0
1,234.00
ADR block file read
384
0
0
0
384.00
SQL*Net message to client
189,490
0
0
0
189,490.00
latch free
559
0
0
0
559.00
db file scattered read
17
0
0
6
17.00
resmgr:internal state change
1
100
0
100
1.00
direct path read
301
0
0
0
301.00
enq: RO - fast object reuse
35
0
0
2
35.00
direct path write
122
0
0
1
122.00
latch: cache buffers chains
260
0
0
0
260.00
db file parallel read
1
0
0
41
1.00
ADR file lock
144
0
0
0
144.00
latch: redo writing
55
0
0
1
55.00
ADR block file write
120
0
0
0
120.00
wait list latch free
2
0
0
10
2.00
latch: cache buffers lru chain
44
0
0
0
44.00
buffer busy waits
3
0
0
2
3.00
latch: call allocation
57
0
0
0
57.00
SQL*Net more data to client
55
0
0
0
55.00
ARCH wait for archivelog lock
78
0
0
0
78.00
rdbms ipc message
3,157,653
40
4,058,370
1285
3,157,653.00
Streams AQ: qmn slave idle wait
11,826
0
172,828
14614
11,826.00
DIAG idle wait
170,978
100
172,681
1010
170,978.00
dispatcher timer
1,440
100
86,417
60012
1,440.00
Streams AQ: qmn coordinator idle wait
6,479
48
86,413
13337
6,479.00
shared server idle wait
2,879
100
86,401
30011
2,879.00
Space Manager: slave idle wait
17,258
100
86,324
5002
17,258.00
pmon timer
46,489
62
86,252
1855
46,489.00
smon timer
361
66
86,145
238628
361.00
VKRM Idle
1
0
14,401
14400820
1.00
SQL*Net message from client
253,909
0
419
2
253,909.00
class slave wait
379
0
0
0
379.00
Back to Wait Events Statistics
Back to Top
Wait Event Histogram
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Wait Event Histogram Detail (64 msec to 2 sec)
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Wait Event Histogram Detail (4 sec to 2 min)
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Wait Event Histogram Detail (4 min to 1 hr)
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Service Statistics
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
Service Wait Class Stats
No data exists for this section of the report.
Back to Wait Events Statistics
Back to Top
SQL Statistics
SQL ordered by Elapsed Time
SQL ordered by CPU Time
SQL ordered by User I/O Wait Time
SQL ordered by Gets
SQL ordered by Reads
SQL ordered by Physical Reads (UnOptimized)
SQL ordered by Executions
SQL ordered by Parse Calls
SQL ordered by Sharable Memory
SQL ordered by Version Count
Complete List of SQL Text
Back to Top
SQL ordered by Elapsed Time
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by CPU Time
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by User I/O Wait Time
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Gets
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Reads
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Physical Reads (UnOptimized)
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Executions
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Parse Calls
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Sharable Memory
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
SQL ordered by Version Count
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
Complete List of SQL Text
No data exists for this section of the report.
Back to SQL Statistics
Back to Top
Instance Activity Statistics
Instance Activity Stats
Instance Activity Stats - Absolute Values
Instance Activity Stats - Thread Activity
Back to Top
Instance Activity Stats
No data exists for this section of the report.
Back to Instance Activity Statistics
Back to Top
Instance Activity Stats - Absolute Values
No data exists for this section of the report.
Back to Instance Activity Statistics
Back to Top
Instance Activity Stats - Thread Activity
Statistics identified by '(derived)' come from sources other than SYSSTAT
Statistic
Total
per Hour
log switches (derived)
69
2.87
Back to Instance Activity Statistics
Back to Top
IO Stats
IOStat by Function summary
IOStat by Filetype summary
IOStat by Function/Filetype summary
Tablespace IO Stats
File IO Stats
Back to Top
IOStat by Function summary
'Data' columns suffixed with M,G,T,P are in multiples of 1024 other columns suffixed with K,M,G,T,P are in multiples of 1000
ordered by (Data Read + Write) desc
Function Name
Reads: Data
Reqs per sec
Data per sec
Writes: Data
Reqs per sec
Data per sec
Waits: Count
Avg Tm(ms)
Others
28.8G
20.55
.340727
16.7G
2.65
.198442
1803K
0.01
Direct Reads
43.6G
57.09
.517021
411M
0.59
.004755
0
LGWR
19M
0.02
.000219
41.9G
21.87
.496493
2760
0.08
Direct Writes
16M
0.00
.000185
8.9G
1.77
.105927
0
DBWR
0M
0.00
0M
6.7G
4.42
.079670
0
Buffer Cache Reads
3.1G
3.67
.037318
0M
0.00
0M
260.1K
3.96
TOTAL:
75.6G
81.33
.895473
74.7G
31.31
.885290
2065.8K
0.51
Back to IO Stats
Back to Top
IOStat by Filetype summary
'Data' columns suffixed with M,G,T,P are in multiples of 1024 other columns suffixed with K,M,G,T,P are in multiples of 1000
Small Read and Large Read are average service times, in milliseconds
Ordered by (Data Read + Write) desc
Filetype Name
Reads: Data
Reqs per sec
Data per sec
Writes: Data
Reqs per sec
Data per sec
Small Read
Large Read
Data File
53.2G
78.33
.630701
8.9G
7.04
.105197
0.37
21.51
Log File
13.9G
0.18
.164213
41.9G
21.85
.496123
0.02
2.93
Archive Log
0M
0.00
0M
13.9G
0.16
.164213
Temp File
5.6G
0.67
.066213
8.1G
0.80
.096496
5.33
3713.27
Control File
2.9G
2.16
.034333
2G
1.46
.023247
0.05
19.98 -
How can we implement the currency translation in a query definition
How can we implement the currency translation in a query definition and should it modified for each and every type of currencies
hi rama krishna
i think u can not get any translation in Query. this is only for het the report as it is there in tables. if u want to write a report take a help of the Abaper
hope u goit,assign points if u ok for this
thanks
subbu -
Hi , How to make a calculated kf as local in the query definition
Hi ,
How to make a calculated kf as local in the query definition
Regards,
Ravi.Hi,
Calculate KF consists of Basic, restrict and other calculated kFs stored in Metadata repository.
Calculate KF is a replicate of Formula and acts as Global.
Calculate KF acts as Global--you can use Globally.
Formula as Local--you can use as local to Query.
you can create the Calculate KF as follow:
Goto Query Designer>Open/Create Query>Select Key Figures Mode on left side of Query>Select that KF node> right click Select Calculate Keyfigure.
then one popup window dispays, so you make the calculations based on Basic KF, Restirct Kf and Formule. then save it.
Regards,
Suman. -
How to import from Oracle to ODI View query definition?
The scenario:
I have a View in Oracle database with name 'XV'.
When I loaded metadata from this Oracle database the 'XV' structure was imported too.
Is it possible to get in ODI the 'XV' query definition in format 'CREATE VIEW ... ' or 'SELECT * FROM'?
Thanks a lot for answers.Still cannot connect.
The Administration Tool help suggests the tnsnames.ora is not required:
"For Oracle Database data sources, the data source name is either a *full connect string* or a net service name from the tnsnames.ora file. If you enter a net service name, you must ensure that you have set up a tnsnames.ora file within the Oracle Business Intelligence environment, in ORACLE_HOME/network/admin".
I've tried the tnsnames.ora route, but this still does not work. I created a tnsnames.ora file in <MW_HOME>\Oracle_BI1\network\admin. Is this correct?
I'm assuming that I don't need an Oracle client install on the same (Windows) PC that I've got Oracle BI 11g installed on. Is this correct? -
How to delete the Query Buffer in OLAP
Hi Guys,
I have been working with query, after some time there has some changes in cube data.
But when i execute the query it shows the previous values only.
So, i would like to delete the existed buffer in OLAP from that query.
So, please help me out regarrding this....
Its very urgent.
Points are assigned for better ones.
Thanks in advance
PeterCached results have a timestamp, which is compared with the timestamp of the last data load
and meta data change.
If new data is loaded before a cached query is executed again, the OLAP engine states that the
cached entry is out-of-date. It removes the old entry, loads the current query result from the
InfoProviders and writes back this new OLAP Cache entry. The OLAP Cache entry is invalidated
in the following cases:
Transaction Data Load to the underlying InfoProvider(s)
Deletion of Transaction Data from the underlying InfoProvider(s)
Master Data Load (and hierarchies) and subsequent change run of InfoObjects contained
in the query definition
Currency conversion rate change
This invalidation is also done for meta data changes, i.e. changes to the query structure, and
query generation.
Note that changes to key dates for time-dependent master data does not result in invalidation,
but in an additional cache entry.
In addition, the OLAP Cache can be invalidated and deleted completely via the OLAP Cache
monitor (transaction RSRT 􀃆 Cache Monitor or transaction RSRCACHE). One query entry in
the OLAP Cache can be invalidated by simply re-generating the query. -
How to change the query ?
Gurus,
Please clarify this
Select ils.item,(nvl(sum(decode(tdh.loc_type,'S',decode(tdh.tran_code, 1,tdh.units,0),
'W',decode(tdh.tran_code,30,0,31,0,32, tdh.units,33, tdh.units,37,0,38, tdh.units,20,0,1,0))),0))"result"
from tran_data_history tdh, item_loc_soh ils
where tdh.item = ils.item
and ils.item in('100002513','100002484')
and trunc(tdh.TRAN_DATE)
between (*select first_date from (select item,min(trunc(first_received)) first_date From Item_loc_soh*
where item in('100002513','100002484') and first_received is not null
group by item ))
and trunc(sysdate)
group by ils.item
Problem with this query is, the block mentioned in BOLD is returning two rows, and I am writing between and clause .. since the query in bold is returning more than one row, it is throwing error stating that single query returns more than one row .. Requirement is, whatever date which is returned with value 100002513 should be compared with sysdate, and other value 100002484 should be compared with sysdate .. Irrespective of number of items (whether 1 or more than 1) should simultaneously be compared with sysdate
How to change my query
RegardsInner query
Select First_Date From (Select Item, Min(Trunc(First_Received)) First_Date
From Item_Loc_Soh *
Where Item In ('100002513', '100002484')
And First_Received Is Not Null
Group By Item)
this will return 2 rows for each of the item id 2513 and 2484 because you write query for this 2 rows
and select min date
which means
item id 2513 min date
item id 2482 min date
if you want to compare just a date to sysdate then do it directly,
Select Ils.Item,
(Nvl(Sum(Decode(Tdh.Loc_Type,
'S',
Decode(Tdh.Tran_Code, 1, Tdh.Units, 0),
'W',
Decode(Tdh.Tran_Code,
30,
0,
31,
0,
32,
Tdh.Units,
33,
Tdh.Units,
37,
0,
38,
Tdh.Units,
20,
0,
1,
0))),
0)) "result"
From Tran_Data_History Tdh, Item_Loc_Soh Ils
Where Tdh.Item = Ils.Item
And Ils.Item In ('100002513', '100002484')
And Trunc(First_Received) = Sysdate;
however i dont understand importance of Tdh.Tran_Date and which date you exactly want to compare
hope this helps,
if not plz clarify more on the questionsEdited by: Nicloei W on Sep 24, 2008 11:51 PM -
How to compare date which is greatest date
iam new to sql
how to compare date which date is greatest date with example
can i use to_char to compare date
SELECT eno, ename, GREATEST (TBLE.MAX1, TBLE.MAX2) recent_date "
FROM (SELECT TBLA.eno, TBLA.ename, "
MAX (TO_CHAR (TBL.date1, 'MM/DD/YYYY HH24:MI') "
) MAX1, "
MAX (TO_CHAR (TBL.date2, 'MM/DD/YYYY HH24:MI') "
) MAX2 "
FROM dual TBL, dual2 TBLA
in above query if any one of the date having null value then recent_date is showing 'null'
and also it showing wrong value
example
date1='08-22-2009' and date2='01-23-2010' then it showing wrong recent_datel ike='08-22-2009'
as according my knowledge it is comparing with month it sholud not be like this wat i have to do pls explain with example my o/p should come for recent_date like =''01-23-2010''
Edited by: user9112274 on Aug 27, 2010 5:31 AMHi,
there are numerous ways to compare dates, i give you some examples:
with data_Sample as
(select to_date('01-jan-2001','dd-mon-yyyy') d1, to_date('01-mar-2002','dd-mon-yyyy') d2, to_date('03-feb-2002','dd-mon-yyyy') d3 from dual)
select greatest(d1,d2,d3) from data_Sample
GREATEST(D1,D2,D3)
3/1/2002
with data_Sample as
(select to_date('01-jan-2001','dd-mon-yyyy') d1 from dual union all
select to_date('01-mar-2002','dd-mon-yyyy') from dual union all
select to_date('03-feb-2002','dd-mon-yyyy') from dual)
select max(d1) from data_Sample
MAX(D1)
3/1/2002
declare
d1 date :=to_date('01-jan-2001','dd-mon-yyyy');
d2 date :=to_date('01-jan-2001','dd-mon-yyyy');
begin
if d1>d2 then
dbms_output.PUT_LINE('d1 greater than d2');
else
dbms_output.PUT_LINE('d1 less or equql than d2');
end if;
end;
output:
d1 less or equal than d2now concerning your question:
>
can i use to_char to compare date
>
If you have date data types : don't convert them.
if you have no choice, use something like:
if to_char(d1,'YYYYMMDD') > to_char(d2,'YYYYMMDD') then
else
end if;Take care when you convert a date into a char format it becomes string comparison (with all it implies) (It's the reason why i've use an explicit mask format). -
Report running very slow compared to Query Analyzer - high TimeDataRetrieval
Hi,
I have a report in SQL Reporting Services 2005 which calls a stored proc and the report takes a very long time to run and sometimes returns zero records. But when i run the stored proc in query analyzer it takes about 4 seconds!!
I have checked the execution log on the RS using the below sql:
Code Snippet
use ReportServer
Select * from ExecutionLog with (nolock) order by TimeStart DESC
It shows that i have a large amount of time for the dataretrieval (601309ms, about 10mins) and does not return any records most likely because of a query timeout:
TimeDataRetrieval TimeProcessing TimeRendering Source Status ByteCount RowCount
601309 2227 3 1 rsSuccess 4916 0
The weird thing is that when i run it in query analyzer, i get about 400 records in 4 seconds !!
I dont understand what RS is doing to take up so much time like this to retrieve data.
The report is very simple - it basically returns the records straight out into a table.
The only thing I somewhat suspected was a parameter data type conflict between RS and SQL, specifically dates. I have a start and end date parameter in the report - i tried specifying this as date and string to see if it made any difference but it didn't.
Any help would be greatly appreciated.Hi Mark,
I didn't say it was an issue of parameter sniffing, and I didn't point you towards the good article about that <s>. I asked you whether you had read the article, described to you earlier in the thread.
What I said was that it might be an issue of appropriate and dynamic query optimization, versus a cached query plan. Parameter sniffing is only one of many ways that SQL Server tries to figure out how to optimize a query. I thought the article did a good job of discussing some of what goes on during this process, and that by absorbing that you could think of ways to handle the wider issue that would be appropriate to your code. I also pointed you to a thread in which I discussed this in more detail.
While there are truly many issues with the date controls in the default parameter interface and how they behave, I don't think that what you're experiencing with the date format is implicated in the performance issue. I guess it *might* be if (say) there is a non-default param value in your proc but your report parameter allows nulls.
Let's say the report server database has a different date default than your production database in your system. I have never sat down and tested this scenario and I guess it might cause problems, So we'll look at that first.
Whether the date format is at fault is really easy to prove one way or the other, and once proven can be pretty easy to fix:
Create a test parameter that is of string type. SQL Server is really good about dynamic conversion of string dates to date types as you probably know.
place values (formatted however you want) into this version of the parameter instead of your date control parameter. Use valid dates, in both formats.
Does your performance change?
Do you get the right results but bad performance with US format date strings versus right results with good performance with AU date values?
Do you get the WRONG results with US format date strings, or with AU date strings?
Try additional permutations involving casting/converting in your proc.
FWIW, go ahead in the Query Analyzer and put the SAME values you see in the log into your tests there (in US format, I mean). Do you get the CORRECT results? Does performance change? Hold this thought and see below.
Another thing you can do is look at the query plan as presented by the Query Analyzer when you present the arguments different ways. See #7 above -- try presenting the date in different formats. Does the plan show the same path and the same indexes in use each time, or are some not possible because of the way the date has to be converted? When this happens, the issue is usually that the conversion must be done for each line compared in the filter. You can fix this really easily in most cases by cast/convert in the procedure so that your SELECT line is only doing that work once.
If the plans are different, and perhaps the indexes used are different and you *can't* fix it by fixing the date before the SELECT, do you need to add an index, or perhaps rebuild one?
Moving on from the date format, as I said before it may be really important NOT to go by your interactive Query Analyzer performance because what you do there may not be used by SQL Server in determining a query plan to cache and re-use. In case you haven't read the other discussion that I pointed you to at (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1827775&SiteID=1), think about using RECOMPILE or other options that will force a more dynamic investigation of the query.
>L< -
How to compare, current value in :block.text_item with the database value
Hi
Could you please tell me
How to compare the current value in :block.text_item with the corresponding database column value.
I am using forms 10g
There is block and there is an text Item in that block.
When I run the form and query the block (tabular), the :block.text_item shows me, whatever value there in the database.
Now I add some value in the :block.text_item to the existing value.
now
the :block.text_item contains old+ new added value
whereas
the database table contains 'old' value
Now on a button click , I want to find out what is the value that I have added
Could you please tell me, is it possible without writing a select query?Hello,
Now on a button click , I want to find out what is the value that I have addedSo you mean always user will add value in the existing value. Because this way will fail in one case. Let say
Value in Database is = ABCD
User opened the form and he removed the D and write E and now value is ABCE and length is still same 4. So, there is no addition.
Anyway you can know the database value at runtime there is one property for item called DATABASE_VALUE. It gives the value which is in database while you are running the form before save. and you can use like this..
Trigger = WHEN-MOUSE-DOUBLE-CLICK on item level
DECLARE
vItemValue DATATYPE; -- Set the data type according to your desired field.
vValueAdded DATATYPE; -- Set the data type according to your desired field.
BEGIN
vItemValue:=GET_ITEM_PROPERTY('ITEM_NAME',DATABASE_VALUE); -- It will return you the database value in vItemValue variable.
IF LENGTH(vItemValue)>LENGTH(:FORM_ITEM_NAME) THEN -- It mean something change or added
vValueAdded:=SUBSTR(:FORM_ITEM_NAME,LENGTH(vItemValue)+1);
MESSAGE('Added value is : '||vValueAdded); -- It will show you the added value.
END IF;
-- now suppose you want to show the old and new value in message not the added one
-- Then no need of IF condition. You can just use message like this
-- And i would prefer to use like this way
MESSAGE('Old Value : '||vItemValue||' New Value - '||:FORM_ITEM_NAME);
MESSAGE('Old Value : '||vItemValue||' New Value - '||:FORM_ITEM_NAME);
END;Hope it is clear.
-Ammad -
How to compare Date/time string
I read from datalog file including Date/time string ,and want to query the special Date/time string span ,how to compare the data/time string ?
Hello Joshua,
To compare date/time you have to extract the different components (day, month, year, hour, minute, second) anyway. Why not "convert to seconds"? I think it's easier to compare one number (where you also can do other math, like calc the difference and so on) than to compare seven (?) parameters with some exceptions... If the dates are read from excel (there was a similar thread some days ago), why not convert to seconds in excel (just a format change)?
Best regards,
GerdW
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome -
How to compare two Universes ?
Post Author: Shrikant
CA Forum: Administration
Hi.. all I want to compare two universes of different data mart to check the table structure. Can anybody please tell me how to compare two Universes of different Datamarts?How i can achive this usinig BusinessObjects Enterprise XI Release 2 ??
Thanks in advance.
ShrikantCreate
table tab1(ID
int ,DE char(10))
Create
table tab2(ID
int ,DE char(10))
Insert
into tab1 Values
(1,'aaa')
Insert
into tab1 Values
(2,'bbb')
Insert
into tab1 Values(3,'ccc')
Insert
into tab1 Values(4,'dfe')
Insert
into tab2 Values
(1,'aaa')
Insert
into tab2 Values
(2,'xx')
Insert
into tab2 Values(3,'ccc')
Insert
into tab2 Values(6,'wdr')
SELECT
tab1.ID,tab2.ID
As T2 from tab1
FULL
join tab2 on tab1.ID
= tab2.ID
WHERE
BINARY_CHECKSUM(tab1.ID,tab1.DE)
<> BINARY_CHECKSUM(tab2.ID,tab2.DE)
OR tab1.ID
IS NULL
OR
tab2.ID IS
NULL
ID column considered as a primary Key
Apart from different record,Above query populate missing record in both tables.
Result Set
ID ID
2 2
4 NULL
NULL 6
ganeshk
Maybe you are looking for
-
Create Item with no Page Regions, but with P0 Region Issue
Hi, Suppose you have a region on Page 0 called: P0_REGION. You then create a page, P100, with no region. If you try to create a Page Item you get the following message: Unable to Create Page Item You must create at least one region before you can cre
-
I can' t get firefox to initialize and install on my computer. Any ideas?
I download the program, open it, click yes to run and then my computer just sits there and doesn't install it. Any ideas on what could be wrong?
-
HI Guys, I am SD consultant dont have much idea on this program. In one of the invoice we have a message type called ZSG with medium ALE sends info to other system system via IDOC, under NACE pgm attached for this is RSNASTED. In Idoc there is a seg
-
Recently upgraded G4 MDD now chimes and starts but then shuts down, no vide
Hello all and thank you in advance for checking my question. I hope this particular question has not been brought up in the forums recently and if so, I am sorry for the duplication. I recently received a G4 MDD FW800 with a single CPU running at 1.0
-
Those Annoying Yellow "Tip" Bars
These drive me crazy. There must be a way to shut off those annoying "this image is a placeholder" yellow bar that somehow can overlay a window in another program and won't go away until you return back to Pages and move the cursor. Is it something t