Quantcast
Channel: SCN : Popular Discussions - SAP Adaptive Server Enterprise (SAP ASE) for Custom Applications
Viewing all 1519 articles
Browse latest View live

In a select clause, what can not be resolved by hashing?

$
0
0

In ASE 15.0, which of the following select clauses can NOT be resolved by hashing?

 

  1. Distinct
  2. Group By
  3. Having
  4. Order by

max online engines on Sybase Small Business Edition

$
0
0

Hello,

 

be executing psrinfo command on Solaris machine I see 24 online engines running. Machine has two Intel Xeon X5675 CPUs, every CPU (by specification) has 6 cores with hyper threading.

 

This is extract from  Sybase trace:

Checked out license for 2 ASE_CORE

Adaptive Server Enterprise (Small Business Edition)

 

Sybase version is 15.7 ESD3.

 

I have set max online engines to 8, and in sysengines table I only see 4 engines.

 

I have found that Sybase SBE is limited to 8 engines.

 

So, where are the 4 remaining engines? Will Sybase run them when there is a need for that? How to check this?

 

Best regards,

Vojislav

update statistics questions

$
0
0

1. if an update stats is running on a 5 million rows table for an hour or so, is there anyway to know how much work has already been done and how much time it will take for update stats to complete (other than looking at the log of a previous run)?

 

 

2. with a table with multiple indexes, is it possible to import the statistics for one index alone using optdiag?

 

 

3. what are the performance parameters which affect update stats and how can a running update stats be speedened up (other than parallelism)?

 

 

appreciate the insights.

What to do about Wait Event 251, 'waiting for network send to complete'

$
0
0

We have a set of C++ applications (our backend) running on Red Hat Enterprise Linux release 3 at multiple sites. These applications receive requests from GUI clients to fetch/update the data in the database via a messaging interface. In processing these messages, the applications interact with Sybase ASE using ctlib and stored procedures. We're running Sybase15.0.3 at most sites.

 

We have an application also running on the Red Hat server that queries monProcessWaits every 5 seconds and lists out any application whose wait time exceeds .5 seconds in the previous period and the events it was waiting for. Every half hour the application lists the cumulative wait time for each event that has been waited for in the previous half hour. At one particular site a representative half-hour summary is as follows:

 

Cumulative Wait Totals


Event Id: 29       waiting for regular buffer read to complete                                  Total Time: 249.1 Secs

Event Id: 31       waiting for buf write to complete before writing                            Total Time: 0.3 Secs

Event Id: 36       waiting for MASS to finish writing before changing                      Total Time: 7.2 Secs

Event Id: 41       wait to acquire latch                                                                Total Time: 1.6 Secs

Event Id: 51       waiting for last i/o on MASS to complete                                   Total Time: 7.7 Secs

Event Id: 52       waiting for i/o on MASS initated by another task                        Total Time: 2.8 Secs

Event Id: 54       waiting for write of the last log page to complete                        Total Time: 7.8 Secs

Event Id: 55       wait for i/o to finish after writing last log page                             Total Time: 52.8 Secs

Event Id: 124     wait for mass read to finish when getting page                           Total Time: 33.4 Secs

Event Id: 150     waiting for a lock                                                                     Total Time: 12 Secs

Event Id: 214     waiting on run queue after yield                                                Total Time: 23 Secs

Event Id: 215     waiting on run queue after sleep                                               Total Time: 1 Secs

Event Id: 251     waiting for network send to complete                                        Total Time: 366.4 Secs

Event Id: 260     waiting for date or time in waitfor command                               Total Time: 20.9 Secs

 

 

The most waited-for event is 251. A couple of questions in this regard:

 

  • As I understand it, this event occurs when a requesting application sends a transaction to ASE and the ASE process, after completing the request, is forced to wait while trying to send the response data back across the network to the requesting application. Is this a correct understanding?
  • My second question is what kind of configuration/tuning can I do to lessen the amount of time waiting for this event? Per Sybase, I should check the average packet size in monNetworkIO and monProcessNetIO as increasing the client app's network packet size may improve performance. What about adding additional network memory? Will that help?

 

Thanks for any help.

sp_spaceused display huge index size eveb though index was dropped

$
0
0

Sybase version: Adaptive Server Enterprise/12.5.4/EBF 15446 ESD#8/P/Solaris AMD64/OS 5.10/ase1254/2105/64-bit/OPT/Sat Mar 22 04:05:46 2008

 

Good afternoon,

 

I have a question about sp_spaceused information.

 

For a table, sp_spaceused returns

                                      rowcount    reserved           data               index               unused

REPOSITORY_SPACE    2875956    11855104 KB    140596 KB    11710208 KB    4300 KB

 

The table has an index on a NUMERIC field.

This table has a field of type IMAGE

 

I don't understand why the space used by my index is so huge compared to the data size.

 

I even drop the index, run reorg rebuild, delete statistics, sp_flushstats but the values don't change.

 

Could anyone explain me the figures and why my index size is still present.

 

Thank you

 

Simon

Download scjview.exe for win32?

$
0
0

Hi All,

 

I have seen that standard Sybase ASE installation for SAP will include scjview.exe (64-bit).

 

Is there any place to download scjview.exe to be run in our laptop?

 

I have searching for a while, tried sqlanywhere, but still not found what I want.

 

Thank you

work process restarted session terminated

$
0
0

HI,

 

I went into "dev_w". It showing error like this

 

ERROR: -1 in function ExeNormalModify (execute) [line 18768]

C  (1105) [ZZZZZ] [Sybase][ODBC Driver][Adaptive Server Enterprise]Can't allocate space for object

C   'DDLOG' in database 'XXXX' because 'default' segment is full/has no free extents

C  . If you ran out of space in syslogs, dump the transaction log. Otherwise, use A

C  LTER DATABASE to increase the size of the segment.

C  statement id is ==> [1 dbsynseq                                 565 20120229230549]

B  ***LOG BY4=> sql error 1105   performing INS on table DDLOG [dbsynseq     586]

B  ***LOG BY0=> [ASE Error SQL1105]Can't allocate space for object 'DDLOG' in database 'E01' because 'default' segment is full/has no free extents. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE to increase the size of the segment.

[dbsynseq     586]

B  ***LOG BZY=> unexpected return code 2          calling ins_ddlog  [dbsync       1376]

B  db_syflush (TRUE) failed

B  db_con_commit received error 1024 in before-commit action, returning 8

M  ***LOG R38=> ThICommit3, db_commit98 ( 001024) [thxxhead.c   14350]

M  ***LOG R18=> ThISend, ThICommit () [thxxhead.c   10479]

M  in_ThErrHandle: 1

M  *** ERROR => ThISend: ThICommit (step 5, th_errno 9, action 2, level 1) [thxxhead.c   11329]

M  {root-id=3640B58A63C81ED297F431A5065893BF}_{conn-id=00000000000000000000000000000000}_0

 

 

I am knew to this SYBASE. Please give me is there any solution. for this error.

Moving tempdb database fragments off the master device

$
0
0

Greetings,

 

I am playing around with an SAP ASE 15.7 Server to answer a student´s question about removing the tempdb database fragments off the master device.

 

I used to do this in my sleep, but it has been a while.

 

Somehow, I am missing a step and blown the server up. you can´t even do a load of the master database!!!

 

Here is the code I am tested. I hope somebody can spot the error. Thank you!

 

Regards,

 

Jean-Pierre


tempdb data and log allocation?

$
0
0

Hi Guys,

 

What's your thought to put data and log segment on same device for tempdb as some ppl prefer to put data and log on separate device for tempdb?

 

As per sybooks, for user databases put your data and log on separate devices As

 

1. If data device fails , you can still recover using log .

2. you will have good performance as I/O will be coming from separate devices(If Disk controller would be different , then we get actual performance benefit.)

3. Your data and log will not be competing for space.

etc

 

(Although for master database ,ASE puts data and log on same device)

 

Now  for tempdb :

 

1. Recovery is not important , so we can consider to put on same device.

2. Yeah definitely, I/O contention can come in this case

3. Data and log will be competing for space.

 

Now the question is, What  are the best practices and why ? Does it also matter on tempdb size as well ?

How To Use Escape Characters to Prevent SQL Injection

$
0
0

Currently mitigating security violations in java code.

 

Would like to confirm how to escape special characters when sending dynamic SQL. The following special characters are to be escaped. { ,  " , \ , } , %&'()*+,-./:;<=>?[|\t\n.   The where clause is sent via a parameter in java code.

 

 

Example:

 

 

select * from tableA where columnA=<parameter>

 

parameter passed is: tableA.columnA = 'AB' or 1=1

 

We need to escape quotes and = sign from the <parameter> if it is passed.

 

The result of stripping the special characters in order to stop SQL inject would be: AB or 1 1 instead of 'AB' or 1=1

 

 

 

Thanks in advance.

dbcc checkstorage inside rpc

$
0
0

HI

Im trying to set up regular dbcc checkstorage in our system and encountered a problem.

What it boils down to :

If i make a procedure, eg:

create procedure sp__dbcc_db_pubs

as

dbcc checkstorage (pubs2)

 

and a call it ,

exec sp__dbcc_db_pubs

everything works great, same as if i just manually enter dbcc checkstorage (pubs2)

 

But if i call

loopback...sp__dbcc_db_pubs -- loopback is correctly defined, everything else works ok

 

i get the following error

 

The entries in dbcc_config for database 'pubs2' are either missing or invalid. Use sp_dbcc_evaluatedb to determine appropriate values for the entries and sp_dbcc_updateconfig to set them.

 

The same thing happens with checkverify

 

I have ASE 15.0.3 ESD #4 on 64bit RHEL

 

Any thoughts why is this happening and how to fix it?

 

-- I need to do the checkstorage inside an RPC, because the login that is supposed to be running the checkstorage has indirect_sa_role, which i need to activate, as described in http://www.sypron.nl/grant_sa.html .

Thanks

 

Karel Ditrich

dump load 'cross-platform' - How to know if sp_flushstats was executed?

$
0
0

Good morning,

 

We receive several dump files coming from our customer and we sometime need to load these dumps on a different platform that the one where the dump was taken. In order to guarantee the successfull loading it's recommended prior to take the dump to set the database in 'single use mode' then execute sp_flushstats.

 

It happens the customer didn't follow this recommendation - we usually find it while trying to load the dump and facing an error - meaning we have to find an "iso-architecture"dataserver for the load / execute sp_flushstats / dump the database then load it on our target server...all these operations are 'time consuming'

 

In order to prevent this, is there a way to know if sp_flushstats was executed before taking the dump (except asking the customer) ?

 

Thank you

 

Simon

Stored proc is slow but no waits in monProcessWaits

$
0
0

We have instances of stored procedures that regularly take .01 - .001 seconds that occasionally take 1 second or more. As I have mentioned in several other posts, we have a utility that queries monProcessWaits every 5 seconds and prints out waits for the spids of our C++ applications that interact with ASE via ctlib. Usually, it prints spids that have more than .5 seconds of wait time in the given period. I noticed that I would sometimes have slow stored procedure instances per our application log files but couldn't find corresponding entries for the application in our Sybase waits utility log.

 

I changed the utility so that for some applications it would print out their wait data every 5 seconds as long as they had at least a single wait in the current period. Still I notice that sometimes applications have slow running stored procs but do not have any waits in the period when the stored proc is slow. My question is how can this be? Put a different way, if a stored procedure that normally runs very quickly is slow in some instances and the process running the stored proc shows no wait data at that time then what is making the stored proc slow?

How much Solaris memory allocated by ASE 15.0.3?

$
0
0

Hi.

 

I'm running ASE 15.0.3 on a Solaris 10 system. There is 16GB physical memory. I have set max memory to 15GB. Also, allocate max shared memory is 0, and dynamic allocation on demand is 1. When I look at total logical memory it shows as 13GB.

 

I have been having problems on this system, getting occasional "Vfork failed" errors, which I take to mean the system is running out of memory. So I have been looking at top and other tools to try to get a handle on that.

 

Those tools are telling me that the ASE engine is using 15GB of memory. Also, when I had Oracle tech support analyze the problem, they said the same thing. But based on the ASE memory settings I listed above, I would expect that it should be using only 13GB.

 

I conclude that I must be misunderstanding either ASE's memory strategy, or the output of the top command. Does anyone have any insights?

 

Thanks.

- John.

What are the new ASE patches SP100, SP101?

$
0
0

Hi

 

I noticed that the coming ASE15.7 patches will be called SP100 then SP101.

 

What are the differences with the previous ESD patches?

 

I only know that REP15.7.1 SP100 will require a specific installation (not a binary overlay as usual).

 

thanks

Vincent


In a select clause, what can not be resolved by hashing?

$
0
0

In ASE 15.0, which of the following select clauses can NOT be resolved by hashing?

 

  1. Distinct
  2. Group By
  3. Having
  4. Order by

rollback question

$
0
0

a rollback is supposed to do the exact opposite of what it did in the transaction. so a rollback of an insert, will mean deleting all the newly inserted rows, or rollback of an update will mean reupdating the rows with the old values etc.

 

during a transaction, pages of the object are in both the memory and disk. so a rollback can affect both.

 

so a rollback on a delete tran will reinsert the old data back in the pages (in memory and disk). likewise with an update where it will put back the old values.

 

in both cases, i think it will deal (mostly) with pages already existing on the table (without any newly allocated pages).

 

but let us suppose there is an insert of a million rows. so new pages will be allocated? so during transaction, bunch of it will be in memory and disk. so on a rollback, will newly allocated pages be simply discarded (on memory and disk) without being specifically deleted? so will a rollback on an insert take lesser time than a rollback on an update or delete?

 

the reason i am asking this is many a time i have seen rollbacks take a long time and other rollbacks which are done instananeously. so trying to understand the dynamics.

 

appreciate the insights.

Use MDA to list unused indexes

$
0
0

To list the unused indexes, I enabled the MDA tables in the morning and run the following at the end of the day:

 

select "Database" = db_name(DBID),

       "Table" = object_name(ObjectID, DBID),

       IndID = IndexID, si.name

from master..monOpenObjectActivity oa, sysindexes si

where oa.ObjectID = si.id

  and oa.IndexID = si.indid

  and UsedCount = 0

  and OptSelectCount = 0

  and ObjectID > 99

  and IndexID > 1 and IndexID != 255

  and DBID = db_id()

order by 1,2

 

But I see one clustered index that I am sure was used during the day (I saw it in a Query Plan).

Am I using the right SQL to get the unused indexes?

 

Cheers,

Vincent

tempdb hangup ASE server

$
0
0

Hello All,

   I run a 32bit ASE15.5 server on SUN Solaris machine (Solaris 10, single data disk).  Recently, I got the error message below whenever clients  run a big db job (like a query to a big table (>5GB) with data sorting,  or a job use tempdb a lot):

 

  "kernel  Spid 148               has exceeded its timeout value while issuing a write for               virtual device 8 ('/dev/sybase/temp/tempdb.dat'). A system               call has not responded for 60 seconds, and Adaptive Server               will be impacted until it returns. Contact your operating               system vendor for assistance."

 

  Then the server become not accessible, and I have to kill the server an d re-start. I contact Sybase TS Team, I was told this is OS problem.   But I am not convinced because the server work just fine after re-start. And this problem is reproducable.

  My tempdb is 8GB with 400MB log. The queried tables which caused the problem range from 2BG to 12GB.


  Do anyone have any idea about what causes this problem and how can I fix it?  Thanks a lot.

 

-Wenge


 


From ASE 12.5 2k page size to 15.7 4k page size

$
0
0

Hi guys.

 

So I'm planning to migrate our 12.5 to a fresh new install of 15.7. Meaning, dumping our 3TB database on the 12.5 and load it into the new 15.7. The 12.5 is using 2k page size as default. And I need to install the 15.7 with 2k page size as well, otherwise I won't be able to load the database. But is this okay? 4k is the default now, so will I loose some performance? Maybe there's a workaround?

 

Regards Soeren.

Viewing all 1519 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>