In ASE 15.0, which of the following select clauses can NOT be resolved by hashing?
- Distinct
- Group By
- Having
- Order by
In ASE 15.0, which of the following select clauses can NOT be resolved by hashing?
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
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.
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:
Thanks for any help.
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
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
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
C statement id is ==> [1 dbsynseq 565 20120229230549]
C
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.
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
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 ?
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.
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
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
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?
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.
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 ASE 15.0, which of the following select clauses can NOT be resolved by hashing?
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.
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
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
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.