Stored procedure library |
This document last modified 9/28/99
The following is a guide to a FREE set of stored procedures that extend the Sybase provided system procedures. These procedures provide additional functionality and provide new ways to look at the data provided in the Sybase System Tables. They also provide new formats that allows users, developers, and administrators to see the data they want in the format they want. This collection has been developed by several authors, and is maintained by Edward Barlow. This package is intended to be a professional tool suitable for general use on all your servers.
These procedures are installed into sybsystemprocs (master on pre system 10 servers). All procedure names start with "sp__" (two underscores). This naming convention ensures that the procedures, when run, will be available from any database and that, when they are run, the database context will be the current database. This naming convention also ensures that there are no naming conflicts with Sybase's internal procedures. Thus, if you are in the statsdb database, you can get the space used in statsdb by running sp__dbspace.
There are many new and interesting procedures in this library. Enjoy. I am interested in any thoughts about how to expand these procedures. Please send comments and suggestions to sqltech@tiac.net.
Extended Stored Procedure Library Links. Home Page | Gzipped Tar File (procs.tar.gz)
Installation |
The library is released as a gzipped tar file. First uncompress the file with gzip (pkzip also works in Windows), and then untar that file to create the sub directory named procs. Go to that directory and run the configure command.
gunzip procs.tar.gz tar xvf procs.tar cd procs configure
You are required to know the sa password to the server to install. Note that if you have used the default size for sybsystemprocs, you might encounter space problems. Expand your sybsystemprocs prior to running the configuration if you think this might be an issue.
The configure utility prompts for all information needed to install. As system databases will be modified by these procedures, it is suggested that you dump that database before you load the procedures.
I have recently added configure.pl, specifically for NT environments. If you have perl with sybperl you can run configure.pl to install the library.
One cheap plug |
I do UNIX & Sybase consulting work in the New York Area. Get in touch if you think I might be of assistance (I hate agencies and rely on contacts to get contracts). Without being immodest, I'm good at what I do. Check out my other freeware and shareware (at the web site below). I have developed some nice software that can be used for all kinds of stuff (audits, security, performance, general administration, backups). Contact me and I will be happy to share details (they can also be found on my home page). My email address is sqltech@tiac.net.
PS. Simon Walker (who wrote several of these procedures) does similar consulting work in the UK. He is reachable at siwalker@cix.compulink.co.uk (Simon Walker).
Final note |
All procedures in this package are copyright (c) 1994-9 by Edward Barlow. Special thanks to Simon Walker of the SQL Workshop Ltd, who authored many of them and who greatly assisted in this project. Special thanks to Desiree Johnson for her help. The menu.sh program is compliments of Lars Karlsson of Sweden. A copy of these procedures can be found on the following web sites:
http://www.tiac.net/users/sqltech Edward Barlow sqltech@tiac.net
List of procedures |
A menu program that provides a shell level interface is available, thanks to Lars Karlsson of Sweden, in the program menu.sh. Run it and see!
| sp__depends | Better version of sp_depends |
| sp__help | Better sp_help |
| sp__helpdb | Database Information |
| sp__helpdevice | Break down database devices into a nice report |
| sp__helpgroup | List groups in database by access level |
| sp__helpindex | Shows indexes by table |
| sp__helpsegment | Segment Information |
| sp__helprotect | Simple Protection Info for the database |
| sp__helptext | Show comments with line splits ok |
| sp__helpuser | Lists users in current database by group (includes aliases) |
| sp__lock | Lock information |
| sp__syntax | Works on any procedure to give you syntax |
| sp__who | sp_who that fits on a page |
| sp__block | Blocking processes. |
| sp__dbspace | Summary of current database space information. |
| sp__dumpdevice | Listing of Dump devices |
| sp__diskdevice | Listing of Disk devices |
| sp__helpdbdev | Show how Databases use Devices |
| sp__helplogin | Show logins and remote logins to server |
| sp__helpmirror | Shows mirror information, discover broken mirrors |
| sp__segment | Segment Information |
| sp__server | Server summary report (very useful) |
| sp__stat | Give basic server performance information (loops) |
| sp__vdevno | Who's who in the device world |
| sp__badindex | list badly formed indexes (allow nulls) or those needing statistics |
| sp__collist | list all columns in database |
| sp__find_missing_index | Finds keys that do not have associated index |
| sp__flowchart | Makes a flowchart of procedure nesting |
| sp__groupprotect | Permission info by group |
| sp__indexspace | Space used by indexes in database |
| sp__id | Gives information on who you are and which db you are in |
| sp__noindex | list of tables without indexes. |
| sp__helpcolumn | show columns for given table |
| sp__helpdefault | list defaults (part of objectlist) |
| sp__helpobject | list objects |
| sp__helpproc | list procs (part of objectlist) |
| sp__helprule | list rules (part of objectlist) |
| sp__helptable | list tables (part of objectlist) |
| sp__helptrigger | list triggers (part of objectlist) |
| sp__helpview | list views (part of objectlist) |
| sp__objprotect | Permission info by object |
| sp__read_write | list tables by # procs that read, # that write, # that do both |
| sp__trigger | Useful synopsis report of current database trigger schema |
| sp__whodo | sp__who - filtered for only active processes |
| sp__auditsecurity | Security Audit On Server |
| sp__auditdb | Audit Current Database For Potential Problems |
| sp__checkkey | Generate script for referential integrity problems (uses key info from sp_foreignkey) |
| sp__revalias | get alias generation script for current database |
| sp__revdb | get database generation script for server |
| sp__revdevice | get device generation script for server |
| sp__revgroup | get group generation script for current database |
| sp__revindex | get index generation script for current database |
| sp__revlogin | get login generation script for server |
| sp__revmirror | get mirror generation script for current database |
| sp__revsegment | get segment generation script for current database |
| sp__revtable | get table generation script for current database |
| sp__revuser | get user generation script for current database |
| sp__bcp | Create unix script to bcp in/out database |
| sp__date | Who can remember all the date styles? |
| sp__iostat | Loops n times showing active processes only |
| sp__grep | Search for patern |
| sp__isactive | Shows info about a single active process |
| sp__ls | Lists specific objects |
| sp__quickstats | Quick dump of server summary information |
| sp__whoactive | Show info about who is active |
Right to use, resale and copyright |
I am releasing this library as freeware. I ask that you register with me when you install it (registration is automatic when you install). Redistribute the package at will (see below). Tell your friends. Give me access to procedures that you have written for future versions. Tell me about bugs. Be nice - I am making no money off this.
You are allowed to use this software so long as all copyright notices and the README file are not altered and so long as no money is made by the sale of this software (i.e. you cant include it in a commercial package without permission). If you would like to "make money" or include the code in a commercial package, I ask that you decide on a "fair" price and create some form of "fair" agreement. Make two copies, sign them both, and send them to the package author (Edward Barlow). If the agreement seems fair, I will sign both and send one copy back to you, and we will have a deal. I have put significant effort into this code and, while my primary purpose is to create software for people to use, I expect a fair shake from anybody who can profit from my endeavors.
Procedures submitted by outside authors retain the authors copyright but I (Edward Barlow and any companies I create to distribute software) get the right to redistribute them as i see fit (this is to protect me).
Uninstall |
SQL statements to uninstall this package are contained in the file cleanup.SQL.
Warranty |
(Are you kidding...) This software is provided as-is. No warranties or guarantees are made. To the best of my knowledge, any bugs or outstanding issues are documented in the file "BUGS" that comes with the source code.
v6.2
modified sp__grep to add colid<255
modified sp__who - made bk column char(3) instead of char(2)
helpdbdev - change order to the order device was created
allowed revtable,collist,helpcol to handle decimals with scale
added sp__dbuse
added sp__revrule
added sP__revkey
made badindex only understand 0 dist page if clustered index
fixed label in sp__id
added sp__revtype
v6.10 (Sep 1999)
v6.00 (May 1999)
v5.00 (Mar 1998)
v6.2
modified sp__grep to add colid<255
modified sp__who - made bk column char(3) instead of char(2)
helpdbdev - change order to the order device was created
allowed revtable,collist,helpcol to handle decimals with scale
added sp__dbuse
added sp__revrule
added sP__revkey
made badindex only understand 0 dist page if clustered index
fixed label in sp__id
added sp__revtype
v6.10 (Sep 1999)
v6.00 (May 1999)
v5.00 (Mar 1998)
sp__auditdbAudit current database |
Edward Barlow ( SQL Technologies, inc. )
Checks Common Database Problems
Lists users in group public if groups are used.
Warn about lack of groups if no groups exist besides public.
List users aliased to another non dbo user .
List aliases without logins (login has been previously dropped).
List users without logins (login has been previously dropped).
List objects owned by a non - dbo (usually implies poor code control).
Find objects with access to syslogins in them. This procedure excludes
normal objects like sp__addlogin. Use of this procedure will
identify potential Trojan horses.
Find any objects with public access.
If not master db, list any objects starting with "sp_" that
are also in master (Trojan horses).
Database has not had its transaction log dumped in over 24 hours.
Checks Object / Comment mismatch (hand deleted, or rename)
Create object permissions granted to users
sp__auditdb [@srvname, @hostname ]
External programs that collect errors can pass the parameters parameters (@srvname & @hostname) to the procedure. If these are passed, the procedure will print a slightly different return set that includes error numbers and other information.
This procedure can be only runable by sa because it may reveal information that can help an intruder..
1> sp__auditdb
Error
---------------------------------------------
Object get_comn_syslogins has access to syslogins
Object get_comn_sysusers has access to syslogins
Object get_comn_sysusers has access to syslogins
User sa is a member of group public
Group Public access to object pb_catcol type=P
Group Public access to object pb_catedt type=P
Group Public access to object pbcatfmt type=U
Group Public access to object pbcattbl type=U
sp__auditsecurityAudit system security |
Edward Barlow ( SQL Technologies, inc. )
Reports Users With Passwords like the Username
Reports Users With Null Passwords
Reports Users With Short (<=4 character) Passwords
Reports Users With Master/Model/Tempdb Database As Default (except sa)
Reports allow updates is set
Reports Users with stupid passwords like "sybase"....
Note: much of the utility of this procedure goes away under system 10 with
its encrypted passwords.
sp__auditsecurity [@print_only_errors,] [@srvname, @hostname ]
if @print_only_errors is not null then prints only errors. Otherwise it will print statements about successes
Programs that collect errors can pass the parameters parameters (@srvname & @hostname) to the procedure. If these are passed, the procedure will print a slightly different return set that includes error numbers and other information.
This procedure is only runable by sa because it reveals users with weak passwords.
1> sp__auditsecurity
Security Violations -------------------------------------------------------------------------- (No Users With Null Passwords) User monitor Has master Database As Default User mon6 Has master Database As Default User a Has master Database As Default Allow Updates is Set (Allow Updates is Not Set) (No Trusted Remote Logins)
sp__badindexList badly formed indexes or those needing statistics |
Edward Barlow ( SQL Technologies, inc. )
Identifies bad indexes according to the following rules. Finds indexes containing null, vbl lth, text, or image columns. Find indexes over 30 bytes long or indexes that have never had statistics updated on them. List NC indexes on small tables.
sp__badindex [ @tablename ]
1> exec sp__badindex
Table/Index Name Description Problem Found ------------------------------ ---------------------- ---------------------- alerts.XPKalerts Length = 60 >30 Byte Index alerts.XPKalerts srvname char(30) Allows Null audit_trail.XPKaudit_trail Length = 38 >30 Byte Index comn_database.XPKdatabase Length = 60 >30 Byte Index comn_dumpdevices.XPKcomn_dumpd Length = 60 >30 Byte Index comn_syscolumns.XPKcomn_syscol Length = 94 >30 Byte Index
sp__bcpProduce object |
Simon Walker, The SQL Workshop LTD.
Creates bcp in / out shell script that can be used to extract info from the database.
sp__bcp {server}, [database], [user], [password], [direction], [extension], [commands]
where...
{@server} Server name (should really be entered since @@servername is rarely defined)
[@database] Defaults to database procedure is run in
[@user] Defaults to current username
[@password] Defaults to current password
[@direction] "out" or "in". Defaults to out
[@extension] File extension will default to .dat
[@commands] Allows you to enter further switching commands (-c option to bcp)
It is advisable to run the stored procedure through isql in at least 132 column mode (-w132) to stop the crummy (isql) program from inserting linefeeds.
1> use master 1> sp__bcp SYBASE,master,sa,xxx echo "" echo "" echo BCP out table master..spt_committab bcp master..spt_committab out spt_committab.dat -Usa -Pxxx -SSYBASE -c echo "" echo "" echo BCP out table master..spt_values bcp master..spt_values out spt_values.dat -Usa -Pxxx -SSYBASE
sp__blockShow blocked processes details |
4.9 version: Simon Walker, The SQL Workshop LTD. System 10 version: Ed Barlow
Monitor Blocked Processes
under 4.9 it only does this in current database
Note - with 10 it will only show actual blocking table in master/tempdb or your current database unless you have sa role
4.9 Output1> sp__block SPID User Host Program Blocking on Table Lock Type ---- ---------- ------ ---------- -------------------- --------------- 7 giraffe AARDVARKS_R_US Update_page-blk 7 giraffe AARDVARKS_R_US Ex_page-blk
Blocked SPID Blocked User Host Program Blocked By SPID ------------ ------------ ---------- ---------- --------------- 26 edisking 7 26 ediswise 7 45 iamrich 7 45 iampoor 7 System 10 Output
1> sp__block User Locked Table Lock Type blk pid-usr-cmd Time ---- ---------------- ---------------- ---------------- ------
sp__checkkeyCreates script that can be used to check db referential integrity. |
Ed Barlow
Create script to check foreign key relationships. For example if you have a field stor_id in table sales that indicates the store the sales are for, the script output lists stor_id's in sales that do not have rows in store. The script uses foreign keys that you have set up.
1> sp__checkkey[ for each foreign key in database ] declare @cnt int set nocount on select title_id into #tmp from roysched delete #tmp from #tmp p,titles d where p.title_id=d.title_id if exists ( select * from #tmp ) begin select @cnt=count(*) from #tmp if @cnt>=100 print 'first 100 keys in roysched w/o data in titles' else print 'distinct keys in roysched w/o data in titles' set rowcount 100 select distinct * from #tmp set rowcount 0 end drop table #tmp go [ WHEN RUN THIS SCRIPT PRODUCES ]
1> [ execute above ] distinct keys in roysched w/o data in titles
title_id ---------- A12224
sp__colconflictAnalyze conflicting columns definitions in current database |
Edward Barlow ( SQL Technologies, inc. )
Reports column with multiple definitions (for example, one. defined in table A as an int and in B as a smallint).
sp__colconflict [ @objectname ]
@objname specifies objects to select (query like "%@objname%")
sp__helpnull
1> exec sp__colconflict Column Table Defn Null -------------------- -------------------- --------------- -------- attribute schedule_history char(30) null attribute schedule_attributes varchar(127) null description error_severity char(18) null description system char(255) null description disks char(30) null description user_view char(30) null description remarks varchar(127) null description hardware varchar(127) null group_name schedule_defn char(18) not null group_name schedule_groups char(18) not null group_name comn_sysusers char(30) not null group_name model char(30) null
sp__collistAnalyze columns in current database |
Edward Barlow ( SQL Technologies, inc. )
Reports column definitionsand reports columns with multiple definitions (for example, one. defined in table A as an int and in B as a smallint) and columns that have conflicting "allow null" definitions.
sp__collist [ @objectname ]
@objname specifies objects to select (query like "%@objname%")
1> exec sp__collist column type Nulls Ident Num Tables -------------------- --------------- -------- -------- ---------------- action char(18) null /* 1 Tables */ allow_null tinyint null /* 1 Tables */ allow_updates smallint null /* 1 Tables */ attribute char(30) null /* 1 Tables */ attribute varchar(127) null /* 1 Tables */ audit_trail tinyint not null /* 1 Tables */ benchmark int null /* 4 Tables */
sp__colnullcolumns with conflicting nullity |
Edward Barlow ( SQL Technologies, inc. )
Reports column with same name but conflicting nullity (for example, one. defined in table A as allow null and in B as not allow null).
sp__colnull [ @objectname ]
@objname specifies objects to select (query like "%@objname%")
sp__helpconflict
1> exec sp__colnull Column Table Defn Null -------------------- -------------------- --------------- -------- controller disk_usg char(10) not null controller controllers char(10) not null controller disks char(10) null crdate audit_trail datetime not null crdate db_space_save datetime not null crdate comn_sysobjects datetime not null crdate server_syslocks datetime not null crdate db_space_history datetime not null crdate password_history datetime not null crdate table_space_save datetime not null crdate table_space_history datetime not null crdate alerts datetime null crdate comn_database datetime null
sp__configurea better system configuration viewer |
Edward Barlow ( SQL Technologies, inc. )
This, unlike sp_configure, gives straight result set viewing, sorted into categories. It also shows any defaults if available.
Proc_name Order Parameter ------------------------------ ----- ------------------------------ sp__configure 1 @dont_format char(1) NOT NULL
Category Option Name Value Default ------------------------------ ------------------------------ ------- ------- default data cache 2K I/O Buffer Pool 7800 NULL SQL Server Administration Upgrade version 11510 1100 default data cache User Defined Cache 0 0 default data cache User Defined Cache 7800 NULL Physical Memory additional netmem 0 Languages default character set ID 2 1 Languages default language 0
sp__dateShow date conversion formats for the server |
Simon Walker, The SQL Workshop LTD.
show date conversion formats for server. you could look it up but...
sp__date [ @datestring ]
@datestring is date string to convert - if not given uses getdate()
1> sp__date 1> exec sp__date 0 Oct 31 1997 12:21AM 100 Oct 31 1997 12:21AM 1 10/31/97 101 10/31/1997 2 97.10.31 102 1997.10.31 3 31/10/97 103 31/10/1997 4 31.10.97 104 31.10.1997 5 31-10-97 105 31-10-1997 6 31 Oct 97 106 31 Oct 1997 7 Oct 31, 97 107 Oct 31, 1997 8 00:21:35 108 00:21:35 9 Oct 31 1997 12:21:35:150AM 109 Oct 31 1997 12:21:35:150AM 10 10-31-97 110 10-31-1997 11 97/10/31 111 1997/10/31 12 971031 112 19971031
sp__datediffGives real datediff between time and now |
Edward Barlow ( SQL Technologies, inc. )
@starttime datetime @scale char(1) @outp float output
Returns time differences in FLOATING format. So difference between 3:20AM and 4:40AM in hours is 1.333 and in days is 1.333/24 or about .055.
if @scale='h' select @outp= convert(float,datediff(mi,@startdate,getdate()))/60 else if @scale='d' select @outp= convert(float,datediff(hh,@startdate,getdate()))/24 else if @scale='m' select @outp= convert(float,datediff(ss,@startdate,getdate()))/60 else if @scale='s' select @outp= convert(float,datediff(ss,@startdate,getdate()))
1> declare @x float 2> exec sp__datediff "Jan 20 1999","h",@x
sp__dbspaceShow current db space |
Unknown
calculates out amounts reserved and used for current database
1> sp__dbspace 1> exec sp__dbspace Name Data MB Used MB Percent Log MB Log Used Log Pct ------------ ------------- -------------- ------- --------- --------- ------- statsdb 10 6.6 66.29 0 0.00 0.00
sp__dbuseShow system information |
Philippe Wathelet (Flexible Consulting) philipew@hotmail.com )
5.2
This procedure gives a complete outlook of a database relating to its various components, including the server it runs on. It is designed to operate in a System 11 environment only.
......:1>sp__dbuse <database name> ......:2>goFrom any database including
OR
......:1>sp__dbuse ......:2>go
OR
master:1>sp__dbuse master:2>goIf the current DB is master,
----------------------------------------------
You are 'SYS_INSTALL' as 'dbo' under SPID 10
on with role(s): sa, sso, oper
-DATABASE: Monday Oct 11 1999 11:18AM
========
Database: xrm_db dbid:5
DB owner: xrm_mgr suid:6
Creation: Apr 1 1999 9:42AM MB: 52
-PLACEMENT:
=========
id Database id Database
-- ------------------- -- -------------------
4 sybsystemprocs
5 xrm_db <<<<<<<<<<<<
6 xrm_sod01_db
7 xrm_security_db
8 sim_db
-OPTIONS:
=======
- Select into/bulkcopy/pllsort
- Trunc log on chkpt
- Abort tran on log full
-IN USE BY:
=========
All DBs # # # # # # # # # # # # # # # # # #
This DB xrm_db is NOT in use
-ROLES:
=====
sa sso oper replication
---------- ---------- ---------- ------------
sa
SYS_OPER
SYS_INSTAL
SCRIPT_SVR
-SERVER:
======
Running ####################################
Idle ##################################
SQL #############
I/O ####################################
Received ####################################
Sent ###############################
Errors: 2
Read #######
Write ####################################
Errors: 0
-ENGINES:
=======
Nr Status # Pr Online since
0 online 0 Oct 6 1999 11:48AM
-DATA:
====
Size MB Used MB Full % Free MB
40 30.8 77.1 9.2
-LOG:
===
Size MB Used MB Full % Free MB
12 0.1 0.8 11.9
-ALLOCATED:
=========
Device Usage Size MB
datadev1 - Data - 40
logdev1 - Log - 10
logdev1 - Log - 2
-AVAILABLE: (max used Virtual Device Nr = 3 )
=========
Device VDN Total MB Free MB
datadev1 2 28
logdev1 3 13
master 0 1
sysprocsdev 1 0
+ ------ + -----
387 42
----------------------------------------------
see also 'sp__dbuse usage'
sp__dependsIt's a superset of sp_depends. |
Q Vincent Yin (umyin@mctrf.mb.ca), Sep 1995
This proc can handle usertypes, defaults and rules that are not covered by the original proc sp_depends. For tables, procs, etc, that are covered by sp_depends, this proc will simply call sp_depends. It prints usage and quits if invoked without arguments. Otherwise:
For each line printed by this proc:
If @format=null, output is in tabular format similar to sp_depends. If @format='drop', output is in isql format.
For example,
exec sp__depends 'my_rule', 'drop'
will print (not execute) isql scripts that would unbind my_rule from all attached columns and usertypes, and then drop my_rule. By running the generated isql script, you won't encounter this frustrating error:
Msg 3716, Level 16, State 1: The rule 'my_rule' cannot be dropped because it is bound to one or more column.
@format='drop' doesn't guarentee the successful dropping of usertype because the usertype may have been used by some tables and procs.
I didn't pay much attention to the owners of objects since all objects at our site are owned by dbo.
Proc_name Order Parameter ------------------------------ ----- ------------------------------ sp__depends 1 @objname varchar(30) NOT NULL sp__depends 2 @format varchar(30) NOT NULL sp__depends 3 @dont_format char(1) NOT NULL
object dependant ------------------------------ ------------------------------ sp_procxmode sysobjects sp_validlang syslanguages sp_getmessage sysusermessages sp_getmessage sysmessages sp_getmessage syslanguages sp_getmessage sp_validlang sp_configure sysattributes sp_configure sysdevices sp_configure sysconfigures sp_configure syscurconfigs
sp__diskdeviceList disk devices and their basic information |
Edward Barlow ( SQL Technologies, inc. )
Basic information about disk devices
sp__diskdevice [@devname]
@devname: device name you are interested in - defaults to printing all dump devices
sp__helpdevice, sp__dumpdevice
1> exec sp__diskdevice ****** PHYSICAL DISK DEVICES (Mirror info after device name) ****** Device Name Physical Name size alloc free ------------------- ------------------------------- -------- -------- -------- datadev /disk1/sybase10/datadev.dat 20.0MB 20.0MB 0.0MB datadev2 /disk1/sybase10/datadev2.dat 19.5MB 17.0MB 2.5MB datadev3 /disk1/sybase10/datadev3.dat 10.0MB 4.0MB 6.0MB master d_master 17.0MB 16.5MB 0.5MB sybsecurity /disk1/sybase10/sybsecurity.da 5.0MB 5.0MB 0.0MB sysprocsdev /disk1/sybase10/sysprocsdev.da 10.0MB 10.0MB 0.0MB
sp__dumpdeviceList dump devices and their basic information |
Edward Barlow ( SQL Technologies, inc. )
Basic information about dump devices
sp__dumpdevice [@devname]
@devname: device name you are inetested in - defaults to printing all dump devices
sp__helpdevice, sp__diskdevice
1> sp__dumpdevice 1> exec sp__dumpdevice Device Name Physical Name -------------------- -------------------------------------------------- tapedump1 /dev/rmt4 tapedump2 /dev/rst0
sp__find_missing_indexLists potentially missing indexes |
Edward Barlow ( SQL Technologies, inc. )
Lists potentially missing indexes. Assumes that your foreign key relationships are potential joins and compares keys with actual indexes, listing any keys that do not have associated indexes. This proc will list a key relationship based on fields a,b,c & d if there were no index on a, a&b, a&b&c and so on, assuming that the dba has done his work and would not have an index that was not sufficiently selective (ie. if you decide a is good enough for an index your relationship a,b,c,d should use it in its joins). If this proc does not find the missing index, your model is not sufficiently defined.
sp__find_missing_index [ @objname ] [ @p1]
@objectname gives you missing indexes for that object
@p1 if passed will give full output suitable for programs, but too long for humans to read.
1> exec sp__find_missing_index No Indexes Found in Current Database
sp__flowchartList execution flow of procedures |
Edward Barlow ( SQL Technologies, inc. )
List flow of procedures in current db. Goes 6 levels. Does this from sysdepends. See also sp__read_write for another good optimization tool. I think the output is readable but...
sp__flowchart [ @objname ] [ @p1]
@objectname gives you flow only from 1 object
@p1 if passed will give full 30 character by 6 level output (otherwise the output is
parsed to 15 characters wide strings x 4 levels to fit on the screen).
1> exec sp__flowchart level 1 level 2 level 3 level 4 ------------------ ------------------ ------------------ ------------------ ap_insert_server ap_insert_system
sp__grepgrep for Sybase SQL Server System 10 |
Andrew Zanevsky, AZ Databases, Inc.
DESCRIPTION: Searches syscomments table in the current database for occurences of a combination of strings. Correctly handles cases when a substring begins in one row of syscomments and continues in the next.
sp__grep @parameter [,@case]
@parameter describes the search:
string1 {operation1 string2} {operation2 string 3} ... where - stringN is a string of characters enclosed in curly brackets not longer than 80 characters. Brackets may be omitted if stringN does not
contain spaces or characters: +,-,&; operationN is one of the characters: +,-,&.
Parameter is interpreted as follows:
1.Combine the list of all objects where string1 occurs.
2.If there is no more operations in the parameter, then display the list and stop. Otherwise continue.
3.If the next operation is + then add to the list all objects where the next string occurs; else if the next operation is - then delete from the list all objects where the next string occurs; else if the next operation is & then delete from the list all objects where the next string does not occur (leave in the list only those objects where the next string occurs);
4.Goto step 2.
Parameter may be up to 255 characters long & may not contain <Line Feed> characters. Please note that operations are applied in the order they are used in the parameter string (left to right). There is no other priority of executing them. Every operation is applied to the list combined as a result of all previous operations.
Number of spaces between words of a string matters in a search (e.g. "select *" is not equal to "select *"). Short or frequently used strings (such as "select") may produce a long result set.
- @case: i = insensitive / s = sensitive (default).
list all objects where string 'employee' occurs;
sp__grep employee
list all objects where string 'employee' occurs in any case (upper, lower, or mixed), such as 'EMPLOYEE', 'Employee', 'employee', etc.;
sp__grep employee, i
list all objects where either both strings 'employee' and 'salary' occur or string 'department' occurs, and string 'trigger' does not occur;
sp__grep 'employee&salary+department-trigger'
list all objects where string "select FirstName + LastName" occurs;
sp__grep '{select FirstName + LastName}'
sp__groupprotectSynopsis of protection stuff. |
Edward Barlow ( SQL Technologies, inc. )
Gives number of select / update /delete /insert / revoke / and execute grants for each group and type of object. Useful to summarize what groups have priviliges to do what.
sp__helprotect, sp__objprotect
1> sp__groupprotect 2> go type grp tot sel upd del ins rev exe ---- --------------- ------ ------ ------ ------ ------ ------ ------ P g_mon6 27 0 0 0 0 0 0 P public 27 0 0 0 0 0 9 R g_mon6 6 0 0 0 0 0 0 R g_monitor 6 0 0 0 0 0 0 S g_mon6 57 0 0 0 0 0 0 S g_monitor 57 0 0 0 0 0 0 S public 57 16 0 0 0 0 0 U g_mon6 33 0 0 0 0 0 0 U g_monitor 33 0 0 0 0 0 0 U public 33 11 0 0 0 0 0 V g_mon6 3 0 0 0 0 0 0 V g_monitor 3 0 0 0 0 0 0 V public 3 0 0 0 0 0 0
sp__helpModified sp_help |
Edward Barlow ( SQL Technologies, inc. )
Pretty version of sp_help. sp_help scrolls off screen and is ugly. List objects in current database (if @objname undefined) or list table columns (if @objname defined). The proc is slow....
sp_help [@objname]
if @objname is defined, will list information about specific object if that object exists. If the object doesnt exist, it will try to print all objects that contain the string fragment @object. EXAMPLE
sp__help "pmt_" Info about all objects with "pmt_" in the name
sp__help server Info about table server (with column listing)
sp__help calls the procedures sp__helpcolumn and sp__helpindex when an object is passed as a parameter.
1> sp__help
1> exec sp__help
Name Owner Object_type
-------------------- -------------------- ----------------------
alerts dbo user table
audit_trail dbo user table
comn_database dbo user table
comn_dumpdevices dbo user table
comn_syscolumns dbo user table
comn_sysdevices dbo user table
comn_sysindexes dbo user table
comn_syslocks dbo user table
1> sp__help authors
Name Owner Object_type
-------------------- -------------------- ----------------------
authors dbo user table
table name insert trigger update trigger delete trigger
------------- --------------- --------------- ---------------
authors authors_ins ........... ............
Column_name Type Nulls Default_name Rule_name
------------- --------------- ----- --------------- --------
au_id id 0
au_lname varchar(40) 0
au_fname varchar(40) 0
phone char(12) 0 phonedflt
address varchar(40) 1
INDEX KEY c = clustered u = unique
a = allow dup row s = suspect
Table Name Index Name c u a s List of Index Keys
-------------------- ----------- - - - - ----------------------------
authors auidind Y Y au_id
sp__helpcolumnList columns for table / database |
Edward Barlow ( SQL Technologies, inc. )
List columns for given table
sp__helpcolumn @objname , @p1
@objname can be any valid table or view. If null returns all columns.
@p1 if set will not reformat columns
note the columns are sorted by column id if an object is selected and by column name if not.
1> sp__helpcolumn server
1> exec sp__helpcolumn
Column name Type I Null Dflt Rule Table
-------------------- ------------ --- ---- ---- ---- --------------------
action char(18) 0 Yes audit_trail
allow_null tinyint 0 Yes comn_syscolumns
allow_updates smallint 0 Yes server_configures
attribute char(30) 0 Yes schedule_history
attribute varchar(127) 0 Yes schedule_attributes
audit_trail tinyint 0 No personal_preferences
benchmark int 0 Yes server_statistics
benchmark int 0 Yes summary_statistics
...
sp__helpdbshows database information in a nice format |
Edward Barlow ( SQL Technologies, inc. )
Show standard database information in a concise format
The following procedures are especially useful while creating new databases and attempting to perform optimal allocation of space: sp__helpdb, sp__helpdbdev, sp__helpdevice
sp_helpdb shows information about all databases
sp__helpdb [ @dbname ] prints specific information about given database.
1> sp__helpdb statsdb name size_data size_log owner ---------------- -------------------- -------------------- ---------- statsdb 7.000000 2.000000 saDatabase Name Device Name Size Usage --------------- --------------- -------------------- --------------- statsdb data3 2.000000 data only statsdb datadevice 2.000000 data only statsdb datadevice 3.000000 data only statsdb log 2.000000 log only 1> sp__helpdb 1> exec sp__helpdb key description key description --- ----------- --- ----------- si select into/bulkcopy ro read only tl trunc. log on chkpt do dbo use only cr no chkpt on recovery su single user cl crashed during load ab abort tran ds database suspect
****** DATABASE CONFIGURATION ******* database data log owner si tl cr cl ds ro do su ab -------------------- -------- -------- ---------- -- -- -- -- -- -- -- -- -- master (1) 5 N/A sa mis (7) 15 6 sa model (3) 2 N/A sa pubs2 (8) 4 2 sa statsdb (6) 10 N/A sa Y sybsecurity (5) 5 N/A sa Y sybsystemprocs (4) 14 3 sa Y Y tempdb (2) 7 N/A sa Y Y
total space used total data total log ---------------- ---------- ---------- 73.00 62.00 11.00
sp__helpdbdevShow how database uses devices |
Edward Barlow ( SQL Technologies, inc. )
Show device to database breakdown. Which devices are used by database.
The following procedures are especially useful while creating new databases and attempting to perform optimal allocation of space: sp__helpdb, sp__helpdevice, sp__helpdbdev.
sp__helpdbdev [ @dbname ]
if @dbname parameter is passed, only show information for given database
1> sp__helpdbdevDatabase Name Device Name Size Usage --------------- --------------- -------------------- --------------- master master 2.000000 data and log master master 2.000000 data and log master master 3.000000 data and log migrator datadevice 10.000000 data and log model master 2.000000 data and log pubs2 master 2.000000 data and log tempdb master 2.000000 data and log
1> exec sp__helpdbdev Database Name Device Name Size Usage --------------- --------------- -------------------- --------------- master master 1.500000 data and log master master 3.000000 data and log mis datadev2 5.000000 data only
sp__helpdefaultlist default information in current databases |
Edward Barlow ( SQL Technologies, inc. )
list defaults information in current database
sp__helpdefault [ @objectname ]
if @objectname is provided then procedure will attempt to print information about only one object (if it exists). If not, it will print any objects with that string fragment in them. An error occurs if no objects with the string fragment exist. For example, if you wish to print any table with the name tbl in them use sp__helptable "tbl". If no parameter is passed, all object of type displayed.
sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview
These procedures only read row one of syscomments to determine useful information regarding defaults, rules, and views. It is concievable (though unlikely) that a very long select statement could cause necessary data to be in row two, resulting in ugly output.
1> sp__helpdefault
Default Name Times Used Definition -------------------- ---------- -------------------------------------
sp__helpdeviceBreak down database devices into a nice report |
Edward Barlow ( SQL Technologies, inc. )
Just the info you need, in the format you want. Split between dump and disk devices. Can also be used to show which databases use a given device.
The following procedures are especially useful while creating new databases and attempting to perform optimal allocation of space: sp__helpdevice, sp__helpdbdev, sp__helpdb.
sp__helpdevice summary information on all devices
sp__helpdevice @devicename details for particular device
1> exec sp__helpdevice
Device Name Physical Name -------------------- -------------------------------------------------- tapedump1 /dev/rmt4 tapedump2 /dev/rst0
Device Name Physical Name size alloc free ------------------- ------------------------------- -------- -------- -------- datadev /disk1/sybase10/datadev.dat 20.0MB 20.0MB 0.0MB datadev2 /disk1/sybase10/datadev2.dat 19.5MB 17.0MB 2.5MB datadev3 /disk1/sybase10/datadev3.dat 10.0MB 4.0MB 6.0MB master d_master 17.0MB 16.5MB 0.5MB sybsecurity /disk1/sybase10/sybsecurity.da 5.0MB 5.0MB 0.0MB sysprocsdev /disk1/sybase10/sysprocsdev.da 10.0MB 10.0MB 0.0MB
1> sp__helpdevice datadevice Device Name Physical Name size alloc free ------------------- ------------------------------- -------- -------- -------- datadevice /disk1/sybase10/datadev.dat 20.0MB 20.0MB 0.0MB
db_name size usage ------------------------------ -------------------- ------------------ migrator 10.000000 data and log statsdb 2.000000 data only
sp__helpgroupLists groups members in current database (incl. aliases) |
Edward Barlow ( SQL Technologies, inc. )
Lists users AND aliases in current database. The alias feature is one that is NOT in sp_helpuser. This is a quick method of seeing who has access to particular data. Groups with no users are also shown.
sp__helpgroup [ @groupname ]
if @groupname provided, it will only provide information about that specific group.
1> exec sp__helpgroup Group_name Login_name Alias User_name Default_db -------------- -------------- ----- -------------- -------------- g_mon6 mon6 mon6 master g_monitor monitor monitor master navigator_role N.A. N N.A. N.A. oper_role N.A. N N.A. N.A. public sa dbo master public statsdbo Y dbo statsdb public ebarlow ebarlow statsdb replication_ro N.A. N N.A. N.A.
sp__helpindexShows indexes by table |
Edward Barlow ( SQL Technologies, inc. )
show index information in current database
sp__helpindex [ @objectname, ] [ @width ]
if @objectname is defined, will print index information just for current object. Parameter @width allows printing in modes greater than 80 columns. It may sound weird, but if @objectname is a procedure, it will give any indexes that are used by tables dependant on the procedure (useful for tuning).
1> sp__helpindex INDEX KEY: c = clustered u = unique a = allow dup row s = suspect Table Name Index Name c u a s List of Keys -------------------- ----------- - - - - -----------------------------alerts XPKalerts Y Y hostname,srvname applications XPKAccounti Y Y dbname audit_trail XPKaudit_tr Y Y date,login_name comn_database XPKdatabase Y Y srvname,dbname comn_dumpdevices XPKcomn_dum Y Y srvname,devname comn_syssegments XPKcomn_sys Y Y seg_id comn_sysusages XPKcomn_sys Y Y srvname,devname,dbname,hostname
1> exec sp__helpindex INDEX KEY: c = clustered u = unique a = allow dup row s = suspect
Table Name Index Name c u a s List of Index Keys --------------------- ----------- - - - - ----------------------------------- alerts XPKalerts Y Y hostname,srvname audit_trail XPKaudit_tr Y Y crdate,login_name comn_database XPKdatabase Y Y srvname,dbname comn_dumpdevices XPKcomn_dum Y Y srvname,devname comn_syscolumns XPKcomn_sys Y Y srvname,dbname,object_id,colname
sp__helploginShow logins and remote logins to the server |
Edward Barlow ( SQL Technologies, inc. )
Shows both login and remote login information Note: if Running as sa on pre 4.9 releases, the password field will show. If running system 10, roles for logins are shown.
sp__helplogin [ @loginname ]
(4.9 Version) 1> sp__helplogin ****** SERVER LOGINS ******* Login_name Default_db RemoteName RemoteSrvr -------------- -------------- -------------- -------------- cosmic migrator ebarlow pubs2 probe master qqq pubs2 sa master1> exec sp__helplogin ****** SERVER LOGINS ******* Id Login_name Default_db Sht Lck Exp SA SSO Oper Remote ---- -------------- -------------- --- --- --- -- --- ---- ------ 12 a master 4 ebarlow statsdb 6 george statsdb 7 lperry sybsystemprocs 11 mis mis 13 misread mis 10 mon6 master 9 monitor master 2 probe master 1 sa master Y Y Y 3 statsdbo statsdb
sp__helpmirrorShow mirrors, discover broken mirrors |
Edward Barlow ( SQL Technologies, inc. )
show mirror information in 3 batches: mirrored devices, disabled mirrors, and confused mirrors. The "Pri" & "Sec" fields mean the primary and mirror are active if starred. The Serial field contains a star if Serial writes - none if Parallel.
1> sp__helpmirror ******* SYBASE MIRROR INFORMATION ******* MIRRORED DEVICES Device Pri Sec Serial Mirror Reads --------------- --- --- ------ -------------------------------- ----- data2 * * * /home/programs/sybase/datax *
1> sp__helpmirror ******* SYBASE MIRROR INFORMATION *******
sp__helpobjectlist objects in current databases |
Edward Barlow ( SQL Technologies, inc. )
list tables, views, procedures, rules, defaults, and triggers in current database
sp__helpobject [ @objectname ]
if @objectname is provided then procedure will attempt to print information about only one object (if it exists). If not, it will print any objects with that string fragment in them. An error occurs if no objects with the string fragment exist. For example, if you wish to print any table with the name tbl in them use sp__helptable "tbl". If no parameter is passed, all object of type displayed.
sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview
These procedures only read row one of syscomments to determine useful information regarding defaults, rules, and views. It is concievable (though unlikely) that a very long select statement could cause necessary data to be in row two, resulting in ugly output.
1> exec sp__helpobject
Table Name Rows Res KB Usd KB Rows/KB Segment Cr Date ----------------------- -------- ------ ------ ------- ------------- ------- alerts 420 176 146 2.87 default 24Jan96 audit_trail 4 62 6 0.66 default 24Jan96 comn_database 4 32 6 0.66 default 24Jan96 comn_dumpdevices 3 32 6 0.50 default 24Jan96 comn_syscolumns 593 160 138 4.29 default 24Jan96 comn_sysdevices 2 32 6 0.33 default 24Jan96 comn_sysindexes 70 32 16 4.37 default 24Jan96 comn_syslocks 0 16 2 0.00 default 24Jan96
View Name Cr Date Tables Used -------------------- ---------- ------------------------------------ titleview 02/22/95 authors, titles, titleauthor
Procedure_name Owner Created_date ------------------------------ --------------- ------------ ap_audit_report dbo 24Jan96 ap_audit_start dbo 24Jan96 ap_audit_status dbo 24Jan96
Rule Name Times Used Definition
------------- ---------- ---------------------------------------------
pub_idrule 1 @pub_id in ("1389", "0736", "0877", "1622", "1
title_idrule 2 @title_id like "[0-9][0-9][0-9][0-9]" or @ti
Default Name Times Used Definition -------------------- ---------- ------------------------------------ datedflt 1 getdate() phonedflt 1 "unknown" typedflt 1 "undecided"
Trigger Name Cr Date Ins Cnt Del Cnt Upd Cnt ------------------------------ ------- ------- ------- ------- db_space_ins_trigger 24Jan96 1 1 1 lock_del_trigger 24Jan96 1 1 1 person_del_trigger 18Jan96 1 1 1 person_ins_trigger 18Jan96 1 1 1 scheduler_ins_trigger 24Jan96 1 1 1 server_del_trigger 24Jan96 1 1 1
sp__helpproclist procedure information in current databases |
Edward Barlow ( SQL Technologies, inc. )
list procedure information in current database
sp__helpproc [ @objectname ]
if @objectname is provided then procedure will attempt to print information about only one object (if it exists). If not, it will print any objects with that string fragment in them. An error occurs if no objects with the string fragment exist. For example, if you wish to print any table with the name tbl in them use sp__helptable "tbl". If no parameter is passed, all object of type displayed.
sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview
These procedures only read row one of syscomments to determine useful information regarding defaults, rules, and views. It is concievable (though unlikely) that a very long select statement could cause necessary data to be in row two, resulting in ugly output.
1> exec sp__helpproc
Procedure_name Owner Created_date ------------------------------ --------------- ------------ ap_audit_report dbo 24Jan96 ap_audit_start dbo 24Jan96 ap_audit_status dbo 24Jan96 ap_config_info dbo 24Jan96 ap_debug_statsdb dbo 24Jan96 ap_diff_db dbo 24Jan96 ap_diff_srvr dbo 24Jan96 ap_get_disk_layout dbo 24Jan96
sp__helprotectProtection Information for current database |
Edward Barlow ( SQL Technologies, inc. )
list protection information for current database
sp__helprotect [ @parameter = objectname | username | group ] [@do_system_tables] [@dont_format]
if @parameter is provided then procedure will attempt to print information about only one object (if it exists), group, or user. If no parameter is passed, all objects are displayed. The @do_system_tables parameter, if not null, will include system tables in the output.
sp__groupprotect, sp__objprotect
helprotect should really be spelled helpprotect, but im sticking with the sybase naming convention.
1> sp__helprotect ------------------------------ Grant Execute on ap_get_disk_layout to public Grant Execute on ap_get_ind_to_rebuild to public
sp__helprulelist rule information in current databases |
Edward Barlow ( SQL Technologies, inc. )
list rules information in current database
sp__helprule [ @objectname ]
if @objectname is provided then procedure will attempt to print information about only one object (if it exists). If not, it will print any objects with that string fragment in them. An error occurs if no objects with the string fragment exist. For example, if you wish to print any table with the name tbl in them use sp__helptable "tbl". If no parameter is passed, all object of type displayed.
sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview
These procedures only read row one of syscomments to determine useful information regarding defaults, rules, and views. It is concievable (though unlikely) that a very long select statement could cause necessary data to be in row two, resulting in ugly output.
1> sp__helprule
Rule Name Times Used Definition
------------- ---------- ---------------------------------------------
pub_idrule 1 @pub_id in ("1389", "0736", "0877", "1622", "
title_idrule 2 @title_id like "bu[0-9][0-9][0-9][0-9]"
sp__helpsegmentStored procedure to check segments on server |
shows segments information by database. Also shows sizes of segments.Used in conjunction with sp__segment procedure to decipher segment heirarchy.
sp__helpsegment [ @segname ]
1> exec sp__helpsegment
Segment Codes:U=USER-defined segment on this device fragment L=Database LOG may be placed on this device fragment D=Database objects may be placed on this device fragment by DEFAULT S=SYSTEM objects may be placed on this device fragment
******* SERVER SEGMENT MAP ******* db segmap segname segs device name size (MB) --------------- ----------- --------------- ---- --------------- --------- master 7 system LDS master 3.00 master 7 default LDS master 3.00 master 7 logsegment LDS master 3.00 master 7 system LDS master 1.50 master 7 default LDS master 1.50 master 7 logsegment LDS master 1.50 mis 4 logsegment L datadev 3.00 mis 4 logsegment L datadev 3.00
1> sp__helpsegment "datadevice"
Segment Codes: U=USER-defined segment on this device fragment L=Database LOG may be placed on this device fragment D=Database objects may be placed on this device fragment by DEFAULT S=SYSTEM objects may be placed on this device fragment ******* SERVER SEGMENT MAP ******* db segmap segname segs device name size (MB) --------------- ----------- ----------- ---- --------------- ---------
sp__helptablelist table information in current databases |
Edward Barlow ( SQL Technologies, inc. )
list table information in current database
sp__helptable [ @objectname ]
if @objectname is provided then procedure will attempt to print information about only one object (if it exists). If not, it will print any objects with that string fragment in them. An error occurs if no objects with the string fragment exist. For example, if you wish to print any table with the name tbl in them use sp__helptable "tbl". If no parameter is passed, all object of type displayed.
sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview
These procedures only read row one of syscomments to determine useful information regarding defaults, rules, and views. It is concievable (though unlikely) that a very long select statement could cause necessary data to be in row two, resulting in ugly output.
1> exec sp__helptable
Table Name Rows Res KB Usd KB Rows/KB Segment Cr Date ----------------------- -------- ------ ------ ------- ------------- ------- alerts 420 176 146 2.87 default 24Jan96 audit_trail 4 62 6 0.66 default 24Jan96 comn_database 4 32 6 0.66 default 24Jan96 comn_dumpdevices 3 32 6 0.50 default 24Jan96 comn_syscolumns 593 160 138 4.29 default 24Jan96 comn_sysdevices 2 32 6 0.33 default 24Jan96 comn_sysindexes 70 32 16 4.37 default 24Jan96 comn_syslocks 0 16 2 0.00 default 24Jan96
sp__helptextshow helptext info with spacing correct |
Andrew Zanevsky, AZ Databases, Inc.
list text of code. Uses print statement for technical reasons.
sp__helptriggerlist trigger information in current databases |
Edward Barlow ( SQL Technologies, inc. )
list trigger information in current database
sp__helptrigger [ @objectname ]
if @objectname is provided then procedure will attempt to print information about only one object (if it exists). If not, it will print any objects with that string fragment in them. An error occurs if no objects with the string fragment exist. For example, if you wish to print any table with the name tbl in them use sp__helptable "tbl". If no parameter is passed, all object of type displayed.
sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview. Another way to look at triggers is sp__trigger.
These procedures only read row one of syscomments to determine useful information regarding defaults, rules, and views. It is concievable (though unlikely) that a very long select statement could cause necessary data to be in row two, resulting in ugly output.
1> exec sp__helptrigger
Trigger Name Cr Date Ins Cnt Del Cnt Upd Cnt ------------------------------ ------- ------- ------- ------- db_space_ins_trigger 24Jan96 1 1 1 lock_del_trigger 24Jan96 1 1 1 person_del_trigger 18Jan96 1 1 1 person_ins_trigger 18Jan96 1 1 1 scheduler_ins_trigger 24Jan96 1 1 1 server_del_trigger 24Jan96 1 1 1 server_ins_trigger 24Jan96 1 1 1 server_upd_trigger 24Jan96 1 1 1
sp__helptypeget data types (user and system defined) |
Edward Barlow ( SQL Technologies, inc. )
There is no easy way to look at user defined types using the current system procs, so here one is.
Proc_name Order Parameter ------------------------------ ----- ------------------------------ sp__helptype 1 @dont_format char(1) NOT NULL
TYPE DEFAULT RULE NULL BASE TYPE --------------------- ------------- ------------- ---- --------------------- binary NULL NULL 1 binary tinyint NULL NULL 1 tinyint smallint NULL NULL 1 smallint int NULL NULL 1 int float NULL NULL 1 float numeric NULL NULL 1 numeric money NULL NULL 1 money datetime NULL NULL 1 datetime intn NULL NULL 1 intn
sp__helpuserLists users in current database by access level (incl. aliases) |
Edward Barlow ( SQL Technologies, inc. )
Lists users AND aliases in current database. The alias feature is one that is NOT in sp_helpuser. This is a quick method of seeing who has access to particular data. Users whose logins are not in syslogins are listed with a login name of NULL.
1> exec sp__helpuser
Login_name User_name Alias Group_name Default_db ----------------- ----------------- ----- ----------------- ----------------- sa dbo public master statsdbo dbo Y public statsdb ebarlow ebarlow public statsdb mon6 mon6 g_mon6 master monitor monitor g_monitor master
sp__helpviewlist views in current databases |
Edward Barlow ( SQL Technologies, inc. )
list views information in current database
sp__helpview [ @objectname ]
if @objectname is provided then procedure will attempt to print information about only one object (if it exists). If not, it will print any objects with that string fragment in them. An error occurs if no objects with the string fragment exist. For example, if you wish to print any table with the name tbl in them use sp__helptable "tbl". If no parameter is passed, all object of type displayed.
sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview
These procedures only read row one of syscomments to determine useful information regarding defaults, rules, and views. It is concievable (though unlikely) that a very long select statement could cause necessary data to be in row two, resulting in ugly output.
1> sp__helpview
View Name Cr Date Tables Used -------------------- ---------- --------------------------------------
sp__idTells you who you are and in which database |
Edward Barlow
DESCRIPTION:
Tells you who you are and in which database you are in
1> exec sp__id
db login id db name -------------------- -------------------- ---- -------------------- statsdb sa 1 dbo
sp__indexspaceSpace breakdown by index in current database |
Edward Barlow ( SQL Technologies, inc. )
sp__indexspace gives details of the space used by index in the database. It is a quick way of finding out information on in the database (did your load succeed...). Another way to look at this information is with the stored procedure sp__indexspace, which sumarizes on an index by index basis. Rows/KB is calculated only on the data plus index pages used. It ignores system overhead. If the Rows/KB field (actual rows in table) is much less than the Max/KB (maximum according to row size - found in rowpage field of sysindexes), the index may be very fragmented and could be in need of rebuilding (drop and recreate it). This is only relevant if there is a signifcant numbers of rows.
sp__indexspace [ @table ]
1> exec sp__indexspace
Data Level (Index Type 0 or 1) Name Rows Used/Data/Idx KB Rows/KB Segment ---------------------- -------- ---------------- ------- ------------ alerts.XPKalerts 420 176/142/4 2.88 default audit_trail.XPKaudit_t 4 62/2/4 0.67 default comn_database.XPKdatab 4 32/2/4 0.67 default comn_dumpdevices.XPKco 3 32/2/4 0.50 default comn_syscolumns.XPKcom 593 160/122/16 4.30 default
Non Clustered Indexes
Name Rows Used/Data/Idx KB Rows/KB Segment ---------------------- -------- ---------------- ------- ------------ pbcatcol.pbcatcol_idx 0 16/0/2 0.00 default
sp__iostatEquivalent of the unix iostat command |
Edward Barlow ( SQL Technologies, inc. )
sp__whoactive, sp__isactive, sp__iostat
Unix iostat command equivalent. Does a loop on existing processes and prints only rows in sysprocesses that are doing anything (io or cpu > 0).
Does not monitor logins started after process starts.
sp__iostat { [ @count ] [, @delay ]
@count is number of iterations (default=3) @delay - delay between stats rows in seconds. Valid values are 1,3,5,10,30,60
1> exec sp__iostat
-------- --------- 00:22:32 No Change
Time Spid Login Cmd Cpu Io Mem Blk -------- ---- ------------- ---------------- ------ ---- ---- ------ 00:22:42 6 NULL SITE HANDLER DEAD DEAD DEAD 0
-------- --------- 00:22:52 No Change
sp__isactiveCheck who is doing something on server |
Androw Zanevsky, AZ Databases, Inc. 71232.3446@compuserve.com
sp__whoactive, sp__isactive, sp__iostat
Monitors indicators of a given process for specified time and reports activity (CPU, IO, Locks...).
If any indicator changes, then process is active. This proc uses the waitfor command.
sp__whoactive @spid [, @delay ]
@spid is the spid to watch
@delay is the monitoring interval in seconds (must be 5,10,20,or 60) - defaults to 5
> sp__isactive 1
time locks cpu phys_io cmd status
-------- ------ ----------- ----------- ---------------- ----------------
21:24:51 0 5 0 SELECT running
21:24:56 0 5 0 SELECT running
~+4 sec 0 0 0
Process shows no activity
sp__lockCheck locks on server |
Simon Walker, The SQL Workshop LTD., Edward Barlow ( SQL Technologies, inc. )
pretty print locks
1> exec sp__lockType User Table Page Cmd ----------- ------------------ ---------------------- -------- ----------- Sh_intent sa (pid=1) master..spt_values 0 SELECT Bugs:
Only shows correct object name for objects in current database. If the
sp__locktCheck table locks on server |
Edward Barlow ( SQL Technologies, inc. )
pretty print table locks
1> exec sp__lockt
spid dbname objname type ---- ---------------- ---------------- ---------------- 1 master spt_values Sh_intent
Only shows correct object name for objects in current database. If the
sp__lsEquivalent of the unix ls command |
Edward Barlow ( SQL Technologies, inc. )
Unix ls equivalent. lists objects in db
sp__ls [ @string ]
@ string: search string - pass in wildcards as you wish (ie. xxx% or ab%cd%). Does a normal Sybase like on the string passed.
1> exec sp__ls
Object_name Type Owner Created_date ------------------------------ ---- --------------- -------------------- alerts U dbo Jan 24 1996 1:43PM ap_audit_report P dbo Jan 24 1996 5:38PM ap_audit_start P dbo Jan 24 1996 5:38PM ...
sp__monitormonitor system usage |
Edward Barlow ( SQL Technologies, inc. )
Prettier monitoring information than is normally shown using sp_monitor. Gives details since the last run.
Proc_name Order Parameter ------------------------------ ----- ------------------------------ sp__monitor 1 @desc char(30) NOT NULL sp__monitor 2 @dont_format char(1) NOT NULL
text
-----------------------------------
Number Of Users =1
Seconds Since Last Run =76803
Cpu Busy =0
Io Busy =0
sp__noindexAnalysis of what tables lack indexes. |
Simon Walker, The SQL Workshop LTD.
find tables with either no index or no clustered index. If the table has more than a small number of rows (5 data pages), you may be able to easily improve system performance by adding some.
1> exec sp__noindex
No_Indexes Rows Pages ------------------------------ ----------- ----------- model 1 1 server_syslocks 0 1 system_stats_save 3610 145 summary_statistics_save 3022 160 table_space_save 1028 47 db_space_save 90 6 comn_syslocks 0 1
No_Clustered_Index Rows Pages ------------------------------ ----------- ----------- pbcattbl 0 1 pbcatcol 0 1 x 0 1
sp__objprotectSynopsis of protection stuff. |
Edward Barlow ( SQL Technologies, inc. )
Gives number of select / update /delete /insert / revoke / and execute grants for each object. Can either be by user (parameter) or total.
sp__groupprotect, sp__helprotect
1> sp__objprotect 'public'name type sel upd del ins rev exe
------------------------------ ---- ------ ------ ------ ------ ------ ------ datedflt D 0 0 0 0 0 0 phonedflt D 0 0 0 0 0 0 typedflt D 0 0 0 0 0 0 byroyalty P 0 0 0 0 0 1 discount_proc P 0 0 0 0 0 1 history_proc P 0 0 0 0 0 1 insert_sales_proc P 0 0 0 0 0 1 insert_salesdetail_proc P 0 0 0 0 0 1 storeid_proc P 0 0 0 0 0 1 storename_proc P 0 0 0 0 0 1
sp__proclib_versionQuick dump of statistics on server |
Edward Barlow ( SQL Technologies, inc. )
Returns Extended Stored Procedure Library version number
1> exec sp__proclib_version
----- 3.80
sp__qspacea faster version of sp__dbspace |
Edward Barlow ( SQL Technologies, inc. )
sp__dbspace has had locking problems in busy environments when run programaticly. Use this procedure if you are running space monitoring in a loop.
Proc_name Order Parameter ------------------------------ ----- ------------------------------ sp__qspace 1 @dont_format char(1) NOT NULL
Name Percent Log Pct ------------------------------ -------------------- -------------------- master 63.789063 0.000000
sp__quickstatsQuick dump of statistics on server |
Edward Barlow ( SQL Technologies, inc. )
Quick dump of server stats. Can be run in a tight loop to see how things happen on the server. Normally this program will get the current date from the server, and then run in a while loop running the sp__quickstats procedure (parameter of the previously retrieved date). The parameters mean the following: conn is number of non - sa connections. Time is the time taken to run this query. tbllocks are the number of table locks. runnable is the number of non sa processes performing work.
sp__quickstats { @starttime }
if @starttime is not passed, will not print out a date field at the end.
1> exec sp__quickstats
blks conn ctime locks run tlock %cpu %io %idle minutes ---- ---- ------ ----- ---- ----- ----- ----- ----- ---------- 0 0 126 0 0 0 17.51 0.00 82.49 10.2
sp__read_writeIdentifies which tables are read & which are written by procs |
Edward Barlow ( SQL Technologies, inc. )
This nice proc identifies which tables are read and which are written by stored procedures in the database. Useful for tuning/optimization. See sp__flowchart. read_write is both read & write. The data used by ths proc is not accurate.
1> exec sp__read_write
Tblname Sel Reads Writes R&W num_rows ------------------------------ ----- ----- ------ ----- ----------- alerts 0 2 2 2 420 audit_trail 0 0 4 0 4 comn_database 0 0 0 0 4 comn_syscolumns 0 0 0 0 593 comn_sysdevices 0 0 0 0 2 comn_sysindexes 0 0 0 0 70 comn_syslocks 0 0 0 0 0 comn_syslogins 0 0 0 0 6 comn_sysobjects 0 0 0 0 325 comn_sysusages 0 0 0 0 4 comn_sysusers 0 0 0 0 16 db_space 0 0 0 0 3 db_space_history 0 1 1 1 88 dflt_configures 0 1 1 1 4
sp__revaliasReverse engineer aliases |
Edward Barlow ( SQL Technologies, inc. )
reverse engineers aliases
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser
WARNING: Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
1> sp__revalias
Text ----------------------------------------------------------------------- exec sp_addalias 'probe','dbo' exec sp_addalias 'ebarlow','dbo'
sp__revbindingsreverse engineer bindings in db |
Edward Barlow ( SQL Technologies, inc. )
Reverse engineer bindings of user defined types to columns
bindings ----------------------------------------------------- exec sp_bindefault option_yn_def,'acc_control.modify' exec sp_bindefault option_yn_def,'sod_control.modify' exec sp_bindrule option_yn_rule,option_yn_type exec sp_bindefault option_yn_def,option_yn_type
sp__revdbReverse engineer database layout of the server |
Edward Barlow ( SQL Technologies, inc. )
reverse engineers layout of the databases on a server. Purposly excludes device "master", "model", and "tempdb".
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser
WARNING: Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
1> sp__revdb
Create Database statsdb on 'data3'=2 ,'datadevice'=2 ,'datadevice'=3 log on 'log'=2 go Create Database migrator on 'datadevice'=10 go Create Database pubs2 on 'master'=2 go
sp__revdeviceReverse engineer device layout of the server |
Edward Barlow ( SQL Technologies, inc. )
reverse engineers layout of the devices on a server. Purposly excludes device "master", "diskdump", "tapedump1", and "tapedump2".
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser
WARNING: Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
1> sp__revdevice
/********* BACKUP DEVICES *********/ Text --------------------------- exec sp_addumpdevice 'disk','diskdump','/dev/null',2 exec sp_addumpdevice 'disk','master_dbdump','/dumps/master_dbdump',2 exec sp_addumpdevice 'disk','master_logdump','/dumps/master_logdump', 2 exec sp_addumpdevice 'disk','tapedump1','/dev/rmt4',2 exec sp_addumpdevice 'disk','tapedump2','/dev/rst0',2/****** PHYSICAL DISK DEVICES ******/ Text ---------------------------------------------------------------------- disk init name='data2',physname='/sybase/data2',vdevno=2,size=1024 disk init name='data3',physname='/sybase/data3', vdevno=4,size=2000 disk init name='data',physname='/sybase/data', vdevno=7,size=8096 disk init name='log', physname='/sybase/log', vdevno=3, size=1024
sp__revgroupReverse engineer groups layout of the server / database |
Edward Barlow ( SQL Technologies, inc. )
reverse engineers layout of the groups in your current database
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser
WARNING: Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
1> sp__revgroup
------------------------------------------------- exec sp_addgroup 'developer' exec sp_addgroup 'user'
sp__revindexReverse engineer indexes in current database |
Edward Barlow ( SQL Technologies, inc. )
reverse engineers indexes in your current database
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser WARNING:
Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
1> sp__reverseindexText ------------------------------------------------------------------- create clustered index XPKalerts on dbo.alerts (hostname,srvname)
create unique clustered index XPKAccounting on dbo.applications (dbname) create unique clustered index XPKaudit_trail on dbo.audit_trail (date,login_name) create unique clustered index XPKdatabase on dbo.comn_database (srvname,dbname) create unique clustered index XPKcomn_dumpdevices on dbo.comn_dumpdevices
sp__revkeyReverse engineer keys in the database |
Created By : "Chris Vilsack"
reverse engineers keys in your current database.
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser, sp__revtable
WARNING: run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
Edward Barlow ( SQL Technologies, inc. )
reverse engineers logins in your current server. Can only be run by sa.
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser WARNING:
Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
---------------------------------------------
exec sp_addlogin 'sa','sybase','master'
exec sp_addlogin 'probe','','master'
exec sp_addlogin 'ebarlow','ebarlow','statsdb'
exec sp_addlogin 'xxx','xxx','master'
exec sp_addlogin 'yyy','yyy','master'
exec sp_addlogin 'ttt','ttt','statsdb'
SYSTEM 10 NOTE:
As the system 10 password is encrypted, the password field is filled
Edward Barlow ( SQL Technologies, inc. )
reverse engineers mirror information
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser WARNING:
Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
Edward Barlow ( SQL Technologies, inc. )
Created By : "Chris Vilsack"
reverse engineers rules in your current database.
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser, sp__revtable
WARNING: run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
Edward Barlow ( SQL Technologies, inc. )
reverse engineers segment layout in your current database
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser, sp__revsegment WARNING:
Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
Edward Barlow ( SQL Technologies, inc. ). Modified by Victor Go and Viorel Vlad to add the constraint stuff.
reverse engineers table layout in your current database. This version handles default, check, and primary key constraints.
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser, sp__revtable
WARNING: run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
tbl_txt
-------------------------------------------
CREATE TABLE authors
(
au_id id NOT NULL,
au_lname varchar(40) NOT NULL,
au_fname varchar(40) NOT NULL,
phone char(12) NOT NULL,
address varchar(40) NULL,
city varchar(20) NULL,
state char(2) NULL,
country varchar(12) NULL,
postalcode char(10) NULL
)
reverse engineers types in your current database
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revtype
Edward Barlow ( SQL Technologies, inc. )
reverse engineers user layout in your current database
sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revuser
Run all the reverse engineering utilities in at least 180 column mode (-w180) to prevent line wrapping.
Edward Barlow ( SQL Technologies, inc. )
show segmentation
sp__segment [ @segment ]
if @segment is passed, will only print info for the given segment
Edward Barlow ( SQL Technologies, inc. )
server summary report
The following procedures are called by sp__server: sp__helpdb, sp__helpdbdev, sp__devspace, sp__helpdevice, sp__helpmirror, sp__vdevno, sp__helpsegment, sp__helplogin.
Edward Barlow ( SQL Technologies, inc. )
(11 rows affected) (return status = 0)
Edward Barlow ( SQL Technologies, inc. )
Prints the @@ variables for your server in a loop. Note this proc is actually 2 procedures (sp__stat and sp__stat2) because the @@ variables seem to be replaced when the procedure is executed not when the loop gets to them (so print @@cpu, wait, print @@cpu, wait, print @@cpu will print the same thing each time).
sp__stat @cnt, @delay, @batch
@cnt is the number of rows to print
@delay is the number of seconds delay allowed (must be 1,2,3,4,5,10,30,60)
@batch is a flag - if null will print in real time, if not null, will hold results in #tmp table
and then print them all at once.
The Cpu, IO, and Idle values are in ticks.
The net in and net out values are in packets
All the numbers except Users and Runnable processes are from @@variables of the same name. The users is the number of non - system users, the Run field is the number of users doing something. The conn is the number of connections that happened in the interval.
Edward Barlow ( SQL Technologies, inc. )
Shows syntax of a stored procedure. Who can remember how to use sp_addlogin... Wont tell you what is optional and what is required, but it does tell you how to use the proc.
sp__syntax [@procname]
you probably should pass in a parameter, otherwise you will get gobs of output.
Simon Walker, The SQL Workshop LTD.
show all tables/triggers in current database
sp__trigger [@tablename]
Simon Walker, The SQL Workshop LTD.
Shows Used Device Numbers
Simon Walker, The SQL Workshop LTD.
pretty version of sp_who
sp__who [ @param ]
if @param is a login, it will only print information for that login. If it is a database, it will only print information about users in that database.
Androw Zanevsky, AZ Databases, Inc. 71232.3446@compuserve.com
Monitors indicators of a given process for specified time and reports activity (CPU, IO, Locks...).
If any indicator changes, then process is active. This proc uses the waitfor command.
sp__whoactive [ @loginname] [, @delay ]
@loginname is the spid to watch. Can pass 'active' or 'all' in place of logins (I hope you
dont have logins 'active' and 'all' on your server :).
@delay is the monitoring interval in seconds (must be 5,10,20,or 60) - defaults to 5
Total: 5 process(es). (* - active, @ - this process.)
Simon Walker & Ed Barlow (Ed rewrote Simons command)
sp__who that drops awaiting commands and the sa stuff
sp__whoactive, sp__isactive, sp__iostat, sp__who
sp__whodo [ @param ]
if @param is a login, it will only print information for that login. If it is a database, it will only print information about users in that database.
Philippe Wathelet July 1998
This is a substitute for Sybase's standard sp_who stored procedure
The output is clearer without line wrapping. You can help it with:
allowing a width of up to 150 characters per line for example
sp__whoe [ @login ]
if @login is passed, it will only print information for that login.
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
exec sp_primarykey 'sd_region', region_id
go
exec sp_primarykey 'sd_site', site_id
go
exec sp_primarykey 'sd_table_maint', tbl_name
go
exec sp_primarykey 'sd_timeband', timeband_id
go
exec sp_primarykey 'acc_control', db_name
go
sp__revlogin
Reverse engineer logins for current server
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
1> sp__revlogin
sp__revmirror
Reverse engineer mirrors on current server
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
1> sp__revmirror
----------------------------------------------------------
disk mirror name='data2',mirror='/home/programs/sybase/datax'
sp__revrole
reverse engineer role granting sql for this server
AUTHOR
SAMPLE OUTPUT
exec sp_role 'grant',sa_role , SYS_OPER
exec sp_role 'grant',sa_role , SYS_INSTALL
exec sp_role 'grant',sa_role , SCRIPT_SVR
exec sp_role 'grant',sso_role , xrm_mgr
exec sp_role 'grant',sso_role , SYS_OPER
exec sp_role 'grant',sso_role , SYS_INSTALL
exec sp_role 'grant',sso_role , SCRIPT_SVR
exec sp_role 'grant',oper_role , xrm_admin
exec sp_role 'grant',oper_role , SYS_OPER
exec sp_role 'grant',oper_role , SYS_INSTALL
exec sp_role 'grant',oper_role , SCRIPT_SVR
sp__revrule
Reverse engineer rules in the database
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
exec sp_bindrule 'cc1_sd_product_group', 'sd_product_group.fx_risk_linear'
exec sp_bindrule 'cc2_sd_product_group', 'sd_product_group.int_risk_linear'
exec sp_bindrule 'option_yn_rule', 'acc_control.active'
exec sp_bindrule 'option_yn_rule', 'acc_control.backup'
exec sp_bindrule 'option_yn_rule', 'acc_control.modify'
sp__revsegment
Reverse engineer segments of current server / database
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
1> sp__revsegment
-------------------------------------------
exec sp_addsegment 'yyy','datadevice'
sp__revtable
Reverse engineer tables of current server / database
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
1> sp__revtable authors
sp__revtype
Reverse engineer types in database
AUTHOR
Dinyar Ghyara [SMTP:Dinyar_Ghyara_Tk@data.japan.ml.com]
Thursday, August 05, 1999 4:46 PM
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
1> sp__revtype
-------------------------------------------
exec sp_addtype application_type," char( 20 )" ,"not null"
exec sp_addtype ccy_type," char( 5 )" ,"not null"
exec sp_addtype deal_type_type," char( 10 )" ,"not null"
exec sp_addtype option_yn_type," char( 1 )" ,"not null"
exec sp_addtype product_type," char( 10 )" ,"not null"
exec sp_addtype profit_center_type," char( 20 )" ,"not null"
exec sp_addtype site_type," char( 10 )" ,"not null"
sp__revuser
Reverse engineer users of current server / database
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
WARNING
SAMPLE OUTPUT
1> sp__revuser
-------------------------------------------
exec sp_adduser 'sa','dbo','developer'
exec sp_adduser 'xxx','xxx','user'
exec sp_adduser 'yyy','yyy','user'
exec sp_adduser 'ttt','ttt','developer'
sp__segment
Segment information
AUTHOR
DESCRIPTION
USAGE
SAMPLE OUTPUT
1> exec sp__segment
segment Data KB Indx KB Total
------------- ----------- ----------- -----------
default 2874 1432 4306
logsegment 16 16 32
system 0 16 16
sum sum
=========== ===========
2890 1464
segment type indexname Size KB
------------- ---------- ---------------------------------------- ----------
default CLUSTERED alerts.XPKalerts 176
default CLUSTERED audit_trail.XPKaudit_trail 62
default CLUSTERED comn_database.XPKdatabase 32
default CLUSTERED comn_dumpdevices.XPKcomn_dumpd 32
default CLUSTERED comn_syscolumns.XPKcomn_syscol 160
sp__server
Summary info about a server
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
1> exec sp__server
[ OUTPUT TRUCATED FOR SPACE ]
******* SYBASE VERSION *******
SQL Server/4.9.2/EBF 1950 Rollup/Sun4/OS 4.1.2/1/OPT/Wed Sep 8 00:30:38 PDT 1993
tl trunc. log on chkpt do dbo use only
cr no chkpt on recovery su single user
cl crashed during load ab abort tran
ds database suspect
****** DATABASE CONFIGURATION *******
database data log owner si tl cr cl ds ro do su ab
-------------------- -------- -------- ---------- -- -- -- -- -- -- -- -- --
master (1) 5 N/A sa
mis (7) 15 6 sa
model (3) 2 N/A sa
pubs2 (8) 4 2 sa
total space used total data total log
---------------- ---------- ----------
73.00 62.00 11.00
Database Name Device Name Size Usage
--------------- --------------- -------------------- ---------------
master master 1.500000 data and log
master master 3.000000 data and log
mis datadev2 5.000000 data only
mis datadev2 10.000000 data only
mis datadev 3.000000 log only
Device Name Physical Name
-------------------- --------------------------------------------------
tapedump1 /dev/rmt4
Device Name Physical Name size alloc free
------------------- ------------------------------- -------- -------- --------
datadev /disk1/sybase10/datadev.dat 20.0MB 20.0MB 0.0MB
datadev2 /disk1/sybase10/datadev2.dat 19.5MB 17.0MB 2.5MB
datadev3 /disk1/sybase10/datadev3.dat 10.0MB 4.0MB 6.0MB
******* SYBASE MIRROR INFORMATION *******
(NO DEVICES ARE MIRRORED)
vdevno device
------- ------------------------------
0 master
1 sysprocsdev
2 sybsecurity
db segmap segname segs device name size (MB)
--------------- ----------- --------------- ---- --------------- ---------
master 7 system LDS master 3.00
master 7 default LDS master 3.00
master 7 logsegment LDS master 3.00
master 7 system LDS master 1.50
master 7 default LDS master 1.50
****** SERVER LOGINS *******
Id Login_name Default_db Sht Lck Exp SA SSO Oper Remote
---- -------------- -------------- --- --- --- -- --- ---- ------
12 a master
4 ebarlow statsdb
6 george statsdb
7 lperry sybsystemprocs
11 mis mis
13 misread mis
sp__size
rewrite
AUTHOR
DESCRIPTION
SEE ALSO
USAGE
Proc_name Order Parameter
------------------------------ ----- ------------------------------
sp__size 1 @objname varchar(40) NOT NULL
(return status = 0) SAMPLE OUTPUT
Proc_name Size Avail_size Lines Avail_lines
------------------------------ ------- ----------- ----------- -----------
mon_authorize_non_sa 6 KB 122 2 253
mon_rpc_attach 3 KB 125 1 254
mon_rpc_connect 2 KB 126 1 254
sp_configure 180 KB -52 73 182
sp_dboption 116 KB 12 49 206
sp_dbupgrade 73 KB 55 19 236
sp_getmessage 33 KB 95 14 241
sp_loaddbupgrade 6 KB 122 2 253
sp_procxmode 28 KB 100 12 243
sp_prtsybsysmsgs 4 KB 124 1 254
sp_validlang 6 KB 122 2 253
sp__stat
Sybase iostat/vmstat equivalent for server
AUTHOR
DESCRIPTION
USAGE
NOTES
SAMPLE OUTPUT
1> exec sp__stat
Usrs Run %Cpu %IO Secs Conn Net in Net out Reads Writes Errors
---- --- ---- ---- ---- ---- ------ ------- ----- ------ ------
0 0 0 0 3 0 0 0 0 2 0
Usrs Run %Cpu %IO Secs Conn Net in Net out Reads Writes Errors
---- --- ---- ---- ---- ---- ------ ------- ----- ------ ------
0 0 33 0 2 0 0 1 0 0 0
Usrs Run %Cpu %IO Secs Conn Net in Net out Reads Writes Errors
---- --- ---- ---- ---- ---- ------ ------- ----- ------ ------
0 0 0 0 2 0 0 0 0 0 0
sp__syntax
Syntax of a stored procedure
AUTHOR
DESCRIPTION
USAGE
SAMPLE OUTPUT
1> exec sp__syntax ap_diff_db
Proc_name Order Parameter
------------------------------ ----- ------------------------------
ap_diff_db 1 @srv1 char(30)
ap_diff_db 2 @db1 char(30)
sp__trigger
Useful synopsis report of current database trigger schema
AUTHOR
DESCRIPTION
USAGE
SEE ALSO
SAMPLE OUTPUT
1> exec sp__trigger
table name insert trigger update trigger delete trigger
-------------------- ------------------ ------------------ ------------------
alerts .................. .................. ..................
audit_trail .................. .................. ..................
comn_database .................. .................. ..................
comn_dumpdevices .................. .................. ..................
comn_syscolumns .................. .................. ..................
comn_sysdevices .................. .................. ..................
comn_sysindexes .................. .................. ..................
comn_syslocks lock_del_trigger .................. ..................
comn_syslogins syslogin_insert_tr .................. ..................
comn_sysobjects .................. .................. ..................
sp__vdevno
Show used device numbers
AUTHOR
DESCRIPTION
SAMPLE OUTPUT
1> exec sp__vdevno
vdevno device
------- ------------------------------
0 master
1 sysprocsdev
2 sybsecurity
3 -- free --
4 -- free --
5 -- free --
6 -- free --
7 datadev
8 datadev3
9 datadev2
sp__who
Check who is on server
AUTHOR
DESCRIPTION
USAGE
SAMPLE OUTPUT
1> exec sp__who
spid loginame host program proc dbname status cmd bk
---- ---------- -------- -------- ---- ---------- -------- ---------------- --
1 sa gamesrus isql 9056 statsdb running SELECT 0
2 NULL master sleeping NETWORK HANDLER 0
3 NULL master sleeping MIRROR HANDLER 0
4 NULL master sleeping AUDIT PROCESS 0
sp__whoactive
Check who is doing something on server
AUTHOR
DESCRIPTION
USAGE
SAMPLE OUTPUT
1> exec sp__whoactive
Oct 31 1997 12:23AM
Activity indicators of all logins during the last 5 seconds
spid loginame locks cpu i/o cmd status blkd bcnt a
----- ------------ ----- ----- ------ ---------------- -------- ---- ---- -
1 sa 0 0 0 INSERT running 0 0 @
2 NULL 0 0 0 NETWORK HANDLER sleeping 0 0
3 NULL 0 0 0 MIRROR HANDLER sleeping 0 0
4 NULL 0 0 0 AUDIT PROCESS sleeping 0 0
5 NULL 0 0 0 CHECKPOINT SLEEP sleeping 0 0
sp__whodo
Check who is doing something on server
AUTHOR
DESCRIPTION
SEE ALSO
USAGE
SAMPLE OUTPUT
1> exec sp__whodo
pid loginame cpu io mem dbname status cmd bk bktime
--- --------- ----- ----- ----- ---------- -------- ---------------- -- ------
1 sa 1104 8 1 statsdb running INSERT 0 0
sp__whoe
Long format Who is on System
AUTHOR
DESCRIPTION
isql -U<user> -S<server> -w150
USAGE
SAMPLE OUTPUT
1> exec sp__whoe
This output is documentation for the SQL Technologies STORED PROCEDURE LIBRARY.
copyright © 1994-2000 By
SQL Technologies