STORED PROCEDURE LIBRARY

The following is a guide to a FREE set of stored procedures that extend the Sybase and Microsoft SQL Server provided system procedures. These procedures provide additional functionality and new ways to look at the data provided in the 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 on Sybase and into master on Microsoft Sql Server. 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 want to see space in the statsdb database, you can run:

  use statsdb
  exec sp__dbspace

Most of these procedures can be passed the parameter @dont_format='Y' to produce unformatted output. One goal was to produce output that is readable in 80 column mode for convenience in isql/osql. This is done by truncating some fields (dbname, username etc), which can result in truncated output. If you need more detail or are using a graphical query analyzer you can pass the @dont_format='y' argument and it will show all fields at full length (no column truncation).

   sp__who @dont_format='Y'

Extended Stored Procedure Library Links. Home Page   Standalone Download   GEM Download

These stored procedures are released as Free software under a standard GPL license.

These procedures have been tested under

  SQL SERVER 2000
  SQL SERVER 2005
  SQL SERVER 2008
  SQL SERVER 2008r2
  SYBASE 4.9
  SYBASE 10
  SYBASE 11
  SYBASE 12
  SYBASE 15

INSTALLATION

The library is distributed in two ways. The Generic Enterprise Manager software incldues a copy and a full featured user interface to install the procedures. GEM also uses these procedures extensively - the console creates numerous reports based on these procedures that can be viewed using your web browser. You can also download these procedures as a standalone package.

The primary interface to install this library is to use the configure.pl program. configure.pl is a perl script that requires DBI and either DBD::Sybase (unix) or DBD::ODBC (windows). You can also use the older - unsupported .bat/.sh files that are shipped with the distribution but let me repeat - they are not supported. The .bat files require two parameters SERVERNAME and PASSWORD (the installSQLSVR.bat script only requires SERVERNEAME - it uses native authentication).

To run configure.pl type

  perl configure.pl -?

which should respond with

	Unknown option: ?
	usage: configure.pl --DEBUG --USER=sa --PASSWORD=pass --SERVER=svr --MINVERSION=ver --UPGRADE_TO_LATEST --ALLSERVERS|--SQLSERVERS|--SYBSERVERS [-FILE=File]

If it does not produce the above output on windows - and the cause is missing libraries (the above mentioned DBI and DBD::ODBC), you can install them by running

  ppm install DBI
  ppm install DBD::ODBC

If the libaries are missing on unix, contact your unix administrator.

If the above command works (ie it displays the command syntax) - your perl has all necessary modules installed - you can just run

   perl configure.pl

ignoring the command line arguments and it will ask you for SERVER/LOGIN/PASSWORD. The login you use must have sa_role (sybase) or sysadmin (sql server) role.

As system databases will be modified by these procedures, it is suggested that you dump that database before you load the procedure.

If you are not able to get the perl installer working - you can install via the following unspported scripts:

 configure.sh - the original shell script installer
 installSQLSVR.bat
 installSYBASE12.bat
 installSYBASE15.bat
 installSYBASE_MDA.bat - must change to mda procedure directory

You are, of course, required to know the sa password to the server to install. Well thats not quite true - sql server, if you enter an incorrect password, will attempt to use native windows authentication (so the install will work if you have admin role on the server). Note that, on sybase, the default size for sybsystemprocs is a bit small - it is recommended you extend the default size to use the full sysprocsdev device that gets allocated during installation. You could always just try an install and if you get out of space messages - to extend the space and reinstall.

UNINSTALL

SQL statements to uninstall this package are contained in the file cleanup.SQL.

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!

GENERAL HELP PROCEDURES

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

SYSTEM ADMINISTRATOR PROCEDURES

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

DBA PROCEDURES

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

AUDIT PROCEDURES

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)

REVERSE ENGINEERING PROCEDURES

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

OTHER PROCEDURES

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

AUDITING ERROR CODES

The following is a list of errors generated by the auditing procedures

	31001 User +name+ Is Locked
	31002 Login +name+ Is Expired
	31003 User +name+ Has Null Password
	31003 User +name+ Has Null/Short Password
	31003 User +name+ Has Short (<=4 character) Password
	31004 User +name+ Has +dbname+ Database As Default
	31005 Allow Updates is Set
	31006 ERROR: Num Open Devices Parameter Set Too Low
	31007 ERROR: Num Open Databases Parameter Set Too Low
	31008 Allow Updates is Set
	31009 User +name+ Has Pasword=Id
	31010 Allow Updates is Set
	31011 Tempdb is only +@tempdb)+MB
	31012 User sa is trusted from +srvname
	31013 Database +name+ Created For Load
	31014 Database +name+ Suspect
	31015 Database +name+ Offline
	31016 Database +name+ Offline until recovery completes
	31017 Database +name+ Is Being Recovered
	31018 Database +name+ Has Suspect Pages
	31019 Database +name+ Is Being Upgraded
	31020 Database +name+ -> No Log Device and No TL on Chkpt
	31021 ERROR: MIRROR BROKEN: +name
	31022 ERROR: CHECK MIRRORING: +name
	31025 x.name+ Config Has Been Reset To +c.value2+ (default=+c.defvalue)
	31030 ERROR: Login +name+ Has an invalid default db (dbname)
	31031 Device +rtrim(dev.name)+ Is Mapped But Unused (no segments). Size (MB) = usg.size/512.
	31032 ERROR: Sybsystemprocs should be > 60 MB (@c)
	31033 ERROR: tempdb should be >= 100 MB (@c)
	31034 Database +name+ Is not auto-shrink
	31035 Database +name+ Has No Torn Page Detection
	31036 Database +name+ Is Unusable
	31037 User +name+ Has Stupid Password
	31038 user +u.name+ can use db but lacks login
	31040 File +name+ Is Not Autogrowth
	31101 User +user_name(uid)+ Owns Objects
	32000 Login +m.name+ is aliased to +u.name
	32007 suid + a.suid+ lacks login and is aliased to +u.name
	32008 user +u.name+ can use db but lacks login suid=suid
	32009 database +db_name()+ has not been tran dumped in
	32010 Object +name+ Has No Comments
	32010 count(*)+ Objects Have No Comments
	32011 Comments for id + id + have no object
	32013 v.name + Permission granted to + u.name
	32014 Table +object_name(id)+ Index + name + is suspect
	32016 Object: +object_name(s1.id)+ Has Statistics From +s1.moddate 0)+ and +s2.moddate 0)
	32017 Object: +object_name(s1.id)+ Has OLD Statistics From +s1.moddate 0)
	32018 name + permissions granted to public on +object_name(id) from sysprotects master.dbo.spt_values c
	32019 db_name()+ has +@dat+MB data and + @log+MB log
	32100 Login + m.name + is aliased to + u.name
	32101 User +user_name(uid)+ Has + count(*)+ Objects
	32101 User +user_name(uid)+ Owns Objects
	32102 Object +name+ exists in the db and in sybsystemprocs - This is a possible Trojan Horse
	32102 Object +name+ in master - Possible Trojan Horse
	32102 Object +o.name+ Exists in master and the database - Possible Trojan Horse
	32102 Object +o.name+ Possible Trojan Horse (Exists in master)
	32103 Object +object_name(id)+ has access to syslogins
	32104 No Groups Exist In Database +db_name()
	32105 User +n1.name+ is a member of group public
	32106 Group Public +rtrim(v.name)+ access to + count(*) + objects
	32106 Group Public access to object +o.name+ type=+o.type
	32110 DB Collation +collation+ != Server Collation + serverproperty(collation)

RIGHT TO USE, RESALE AND COPYRIGHT

All procedures in this package are copyright (c) 1994-2011 by Edward Barlow. They are released under a standard GPL license agreement. The license will be changed to GPL v3 when the GPL v3 draft is formalized.

You may 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, README, and other documentation 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 (which can be found in the code files and which should be noted in this documentation) 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).

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.

That file is probably NOT shipped in this distribution because there are no no bugs - although there is generally a bunch of changes that get made whenever the Database vendor releases a new version of the database. If you notify me of any bugs, i will fix them as i can.

Special Thanks

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. The permanent home for this distribution is http://www.edbarlow.com

NAME

sp__auditdb - Audit current database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

   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 previously dropped).
   List users without logins (login previously dropped).
   List objects owned by non-dbo (maybe 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 transaction log dump in 24 hours.
   Checks Object / Comment mismatch (hand deleted, or rename)
   Create object permissions granted to users

USAGE

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.

SEE ALSO

sp__auditsecurity

ACCESS

This procedure can be only runable by sa because it may reveal information that can help an intruder..

SAMPLE OUTPUT

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

NAME

sp__auditsecurity - Audit system security

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

  Reports Users With Passwords like the Username
  Reports Users With Null Passwords
  Reports Users With Short (&lt;=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"....

USAGE

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.

SEE ALSO

sp__auditdb

ACCESS

This procedure is only runable by sa because it reveals users with weak passwords.

SAMPLE OUTPUT

  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)

NAME

sp__badindex - List badly formed indexes or those needing statistics

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__badindex [ @tablename ]

SAMPLE OUTPUT

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

NAME

sp__bcp - Produce object-level bcp commands to get server data

AUTHOR

Simon Walker, The SQL Workshop LTD.

DESCRIPTION

Creates bcp in / out shell script that can be used to extract info from the database.

USAGE

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)

BUGS

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.

SAMPLE OUTPUT

        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

NAME

sp__block - Show blocked processes details

AUTHOR

4.9 version: Simon Walker, The SQL Workshop LTD. System 10 version: Ed Barlow

DESCRIPTION

Monitor Blocked Processes

SEE ALSO

sp__block sp__lockt

SAMPLE OUTPUT

  1> 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

NAME

sp__checkkey - Creates script you can use to check db referential integrity.

AUTHOR

Ed Barlow

DESCRIPTION

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.

SAMPLE OUTPUT

	 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

NAME

sp__colconflict - Analyze conflicting columns definitions in current database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Reports column with multiple definitions (for example, one. defined in table A as an int and in B as a smallint).

USAGE

sp__colconflict [ @objectname ]

@objname specifies objects to select (query like "%@objname%")

SEE ALSO

sp__helpcolumn, sp__collist

sp__helpnull

SAMPLE OUTPUT

 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

NAME

sp__collist - Analyze columns in current database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__collist [ @objectname ]

@objname specifies objects to select (query like "%@objname%")

SEE ALSO

sp__helpcolumn

SAMPLE OUTPUT

  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

NAME

sp__colnull - columns with conflicting nullity

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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).

USAGE

sp__colnull [ @objectname ]

@objname specifies objects to select (query like "%@objname%")

SEE ALSO

sp__helpcolumn, sp__collist,

sp__helpconflict

SAMPLE OUTPUT

 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

NAME

sp__configure - a better system configuration viewer

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

This, unlike sp_configure, gives straight result set viewing, sorted into categories. It also shows any defaults if available.

SEE ALSO

USAGE

 Proc_name                      Order Parameter
 ------------------------------ ----- ------------------------------
 sp__configure                      1 @dont_format char(1) NOT NULL

SAMPLE OUTPUT

 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

NAME

sp__date - Show date conversion formats for the server

AUTHOR

Simon Walker, The SQL Workshop LTD.

DESCRIPTION

show date conversion formats for server. you could look it up but...

USAGE

sp__date [ @datestring ]

@datestring is date string to convert - if not given uses getdate()

SAMPLE OUTPUT

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

NAME

sp__datediff - Gives real datediff between time and now

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

ARGUMENTS

        @starttime datetime
        @scale char(1)
        @outp float     output

DESCRIPTION

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()))

SAMPLE OUTPUT

 1> declare @x float
 2> exec sp__datediff "Jan 20 1999","h",@x

NAME

sp__dbspace - Show current db space

AUTHOR

Unknown

DESCRIPTION

calculates out amounts reserved and used for current database

SEE ALSO

sp__qspace

SAMPLE OUTPUT

 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

NAME

sp__dbuse - Show system information

AUTHOR

Philippe Wathelet (Flexible Consulting) philipew@hotmail.com )

VERSION

5.2

DESCRIPTION

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.

USAGE

 ......:1>sp__dbuse <database name>
 ......:2>go

From any database including . If only the beginning of the DB name is given then the full name is found if identifiable.

OR

 ......:1>sp__dbuse
 ......:2>go

defaults to the current DB. This usage will return the most information.

OR

 master:1>sp__dbuse
 master:2>go

If the current DB is master, defaults to the DB with the log full else to the first DB with a blocking lock on else to the DB with the largest data percentage full.

SEE ALSO

SAMPLE OUTPUT

 ----------------------------------------------
 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'

NAME

sp__depends - It's a superset of sp_depends.

AUTHOR

Q Vincent Yin (umyin@mctrf.mb.ca), Sep 1995

DESCRIPTION

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.

BUGS

@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.

USAGE

 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

SAMPLE OUTPUT

 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

NAME

sp__diskdevice - List disk devices and their basic information

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Basic information about disk devices

USAGE

sp__diskdevice [@devname char(30)=NULL, @dont_format char(1)=null, @sortorder char(1)='N' ]

@devname: device name you are interested in - defaults to printing all dump devices

@dont_format: standard argument if set then print full column width

@sort_order: default to "N" which is to sort files by dbname. If anything else is passed, it will sort by filename

on sql server you can run

SEE ALSO

sp__helpdevice, sp__dumpdevice

SAMPLE OUTPUT

 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

SAMPLE SQL SERVER OUTPUT

 1> exec sp__diskdevice

NAME

sp__dumpdevice - List dump devices and their basic information

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Basic information about dump devices

USAGE

sp__dumpdevice [@devname]

@devname: device name you are inetested in - defaults to printing all dump devices

SEE ALSO

sp__helpdevice, sp__diskdevice

SAMPLE OUTPUT

 1> sp__dumpdevice
 1> exec sp__dumpdevice
 Device Name          Physical Name
 -------------------- --------------------------------------------------
 tapedump1            /dev/rmt4
 tapedump2            /dev/rst0

NAME

sp__find_missing_index - Lists potentially missing indexes

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

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.

SAMPLE OUTPUT

 1> exec sp__find_missing_index
 No Indexes Found in Current Database

NAME

sp__flowchart - List execution flow of procedures

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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...

USAGE

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).

SAMPLE OUTPUT

 1> exec sp__flowchart
 level 1            level 2            level 3            level 4
 ------------------ ------------------ ------------------ -----------
 ap_insert_server   ap_insert_system

NAME

sp__grep - grep for Sybase SQL Server System 10

AUTHOR

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.

USAGE

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).

SAMPLE OUTPUT

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}'

NAME

sp__groupprotect - Synopsis of protection stuff.

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

SEE ALSO

sp__helprotect, sp__objprotect

SAMPLE OUTPUT

  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

NAME

sp__help - Modified sp_help

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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....

USAGE

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)

SEE ALSO

sp__help calls the procedures sp__helpcolumn and sp__helpindex when an object is passed as a parameter.

SAMPLE OUTPUT

    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

NAME

sp__helpcolumn - List columns for table / database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

List columns for given table

USAGE

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.

SEE ALSO

sp__collist

SAMPLE OUTPUT

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
 ...

NAME

sp__helpdb - shows database information in a nice format

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Show standard database information in a concise format

SEE ALSO

The following procedures are especially useful while creating new databases and attempting to perform optimal allocation of space: sp__helpdb, sp__helpdbdev, sp__helpdevice

USAGE

sp_helpdb shows information about all databases

sp__helpdb [ @dbname ] prints specific information about given database.

SAMPLE OUTPUT

 1> sp__helpdb statsdb
 name       size_data  size_log owner
 ---------- ---------- -------- ----------
 statsdb    7.000000   2.000000 sa

 Database 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

NAME

sp__helpdbdev - Show how database uses devices

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Show device to database breakdown. Which devices are used by database.

SEE ALSO

The following procedures are especially useful while creating new databases and attempting to perform optimal allocation of space: sp__helpdb, sp__helpdevice, sp__helpdbdev.

USAGE

sp__helpdbdev [ @dbname ]

if @dbname parameter is passed, only show information for given database

SAMPLE OUTPUT

 1> sp__helpdbdev

 Database 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

NAME

sp__helpdefault - list default information in current databases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list defaults information in current database

USAGE

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.

SEE ALSO

sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview

BUGS

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.

SAMPLE OUTPUT

 1> sp__helpdefault

  Default Name         Times Used Definition
  -------------------- ---------- -------------------------------------

NAME

sp__helpdevice - Break down database devices into a nice report

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

SEE ALSO

The following procedures are especially useful while creating new databases and attempting to perform optimal allocation of space: sp__helpdevice, sp__helpdbdev, sp__helpdb.

USAGE

sp__helpdevice summary information on all devices sp__helpdevice @devicename details for particular device

SAMPLE OUTPUT

 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

NAME

sp__helpgroup - Lists groups members in current database (incl. aliases)

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__helpgroup [ @groupname ]

if @groupname provided, it will only provide information about that specific group.

SEE ALSO

sp__helplogin, sp__helpuser

SAMPLE OUTPUT

 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.

NAME

sp__helpindex - Shows indexes by table

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

show index information in current database

USAGE

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).

SAMPLE OUTPUT

 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

 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

NAME

sp__helplogin - Show logins and remote logins to the server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__helplogin [ @loginname ]

SEE ALSO

sp__helpgroup, sp__helpuser

SAMPLE OUTPUT

 (4.9 Version)
 1> sp__helplogin
 ****** SERVER LOGINS *******
 Login_name     Default_db     RemoteName     RemoteSrvr
 -------------- -------------- -------------- --------------
 cosmic         migrator
 ebarlow        pubs2
 probe          master
 qqq            pubs2
 sa             master

 1> 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

NAME

sp__helpmirror - Show mirrors, discover broken mirrors

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__helpmirror

SAMPLE OUTPUT

 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 *******

NAME

sp__helpobject - list objects in current databases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list tables, views, procedures, rules, defaults, and triggers in current database

USAGE

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.

SEE ALSO

sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview

BUGS

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.

SAMPLE 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 Usd Definition
 ------------- --------- ------------------------------------------
 pub_idrule    1         @pub_id in ("1389", "0736", "0877", "1622"
 title_idrule  2         @title_id like "[0-9][0-9][0-9][0-9]"

 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

NAME

sp__helpproc - list procedure information in current databases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list procedure information in current database

USAGE

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.

SEE ALSO

sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview

BUGS

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.

SAMPLE 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

NAME

sp__helprotect - Protection Information for current database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list protection information for current database

USAGE

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.

SEE ALSO

sp__groupprotect, sp__objprotect

BUGS

helprotect should really be spelled helpprotect, but im sticking with the sybase naming convention.

SAMPLE OUTPUT

 1> sp__helprotect
 ------------------------------
 Grant Execute on ap_get_disk_layout  to public
 Grant Execute on ap_get_ind_to_rebuild  to public

NAME

sp__helprule - list rule information in current databases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list rules information in current database

USAGE

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.

SEE ALSO

sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview

BUGS

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.

SAMPLE 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]"

NAME

sp__helpsegment - Stored procedure to check segments on server

DESCRIPTION

shows segments information by database. Also shows sizes of segments.Used in conjunction with sp__segment procedure to decipher segment heirarchy.

USAGE

sp__helpsegment [ @segname ]

SAMPLE OUTPUT

 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

migrator 7 LDS datadevice 10.00 statsdb 99 U DS datadevice 2.00

NAME

sp__helptable - list table information in current databases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list table information in current database

USAGE

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.

SEE ALSO

sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview

BUGS

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.

SAMPLE 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

NAME

sp__helptext - show helptext info with spacing correct

AUTHOR

Andrew Zanevsky, AZ Databases, Inc.

DESCRIPTION

list text of code. Uses print statement for technical reasons.

USAGE

sp__helptext @objectname

NAME

sp__helptrigger - list trigger information in current databases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list trigger information in current database

USAGE

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.

SEE ALSO

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.

BUGS

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.

SAMPLE 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

NAME

sp__helptype - get data types (user and system defined)

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

There is no easy way to look at user defined types using the current system procs, so here one is.

USAGE

 Proc_name                      Order Parameter
 ------------------------------ ----- ------------------------------
 sp__helptype                       1 @dont_format char(1) NOT NULL

SAMPLE OUTPUT

 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

NAME

sp__helpuser - Lists users in current database by access level (incl. aliases)

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

SEE ALSO

sp__helplogin, sp__helpgroup

SAMPLE OUTPUT

 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

NAME

sp__helpview - list views in current databases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

list views information in current database

USAGE

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.

SEE ALSO

sp__help, sp__helpdefault, sp__helpobject, sp__helpproc, sp__helprule, sp__helptable, sp__helptrigger, sp__helpview

BUGS

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.

SAMPLE OUTPUT

 1> sp__helpview

 View Name             Cr Date    Tables Used
  -------------------- ---------- --------------------------------------

NAME

sp__id - Tells you who you are and in which database

AUTHOR

Edward Barlow

DESCRIPTION:

Tells you who you are and in which database you are in

USAGE

sp__id

SAMPLE OUTPUT

 1> exec sp__id

 db                   login                id   db name
 -------------------- -------------------- ---- --------------------
 statsdb              sa                   1    dbo

NAME

sp__indexspace - Space breakdown by index in current database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__indexspace [ @table ]

SEE ALSO

sp__helptable

SAMPLE OUTPUT

 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

NAME

sp__iostat - Equivalent of the unix iostat command

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

SEE ALSO

sp__whoactive, sp__isactive, sp__iostat

DESCRIPTION

Unix iostat command equivalent. Does a loop on existing processes and prints only rows in sysprocesses that are doing anything (io or cpu > 0).

BUGS

Does not monitor logins started after process starts.

USAGE

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

SAMPLE OUTPUT

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

NAME

sp__isactive - Check who is doing something on server

AUTHOR

Androw Zanevsky, AZ Databases, Inc. 71232.3446@compuserve.com

SEE ALSO

sp__whoactive, sp__isactive, sp__iostat

DESCRIPTION

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.

USAGE

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

SAMPLE OUTPUT

> 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

NAME

sp__lock - Check locks on server

AUTHOR

Simon Walker, The SQL Workshop LTD., Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

pretty print locks

USAGE

sp__lock

SEE ALSO

sp__block

sp__lockt

SAMPLE OUTPUT

 1> exec sp__lock

 Type        User               Table                  Page     Cmd
 ----------- ------------------ ---------------------- -------- ------
 Sh_intent   sa (pid=1)         master..spt_values     0        SELECT

object is not in the current database, it will be displayed

NAME

sp__lockt - Check table locks on server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

pretty print table locks

USAGE

sp__lockt

SEE ALSO

sp__block sp__lock

SAMPLE OUTPUT

 1> exec sp__lockt

 spid dbname           objname          type
 ---- ---------------- ---------------- ----------------
 1    master           spt_values       Sh_intent

BUGS

Only shows correct object name for objects in current database. If the

object is not in the current database, object id will be displayed

NAME

sp__ls - Equivalent of the unix ls command

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Unix ls equivalent. lists objects in db

USAGE

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.

SAMPLE OUTPUT

 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
 ...

NAME

sp__noindex - Analysis of what tables lack indexes.

AUTHOR

Simon Walker, The SQL Workshop LTD.

DESCRIPTION

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.

USAGE

sp__noindex

SAMPLE OUTPUT

 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

NAME

sp__objprotect - Synopsis of protection stuff.

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Gives number of select / update /delete /insert / revoke / and execute grants for each object. Can either be by user (parameter) or total.

SEE ALSO

sp__groupprotect, sp__helprotect

SAMPLE OUTPUT

 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

NAME

sp__proclib_version - Quick dump of statistics on server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Returns Extended Stored Procedure Library version number

SAMPLE OUTPUT

 1> exec sp__proclib_version

 -----
  3.80

NAME

sp__qspace - a faster version of sp__dbspace

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

sp__dbspace has had locking problems in busy environments when run programaticly. Use this procedure if you are running space monitoring in a loop.

SEE ALSO

sp__dbspace

USAGE

 Proc_name                 Order Parameter
 ------------------------- ----- ------------------------------
 sp__qspace                    1 @dont_format char(1) NOT NULL

SAMPLE OUTPUT

 Name                     Percent         Log Pct
 ------------------------ --------------- ----------------
 master                         63.789063         0.000000

NAME

sp__quickstats - Quick dump of statistics on server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__quickstats { @starttime }

if @starttime is not passed, will not print out a date field at the end.

SAMPLE OUTPUT

 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

NAME

sp__read_write - Identifies which tables are read & which are written by procs

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__read_write

SAMPLE OUTPUT

 1> exec sp__read_write

 Tblname                        Sel   Reads Writes R&amp;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

NAME

sp__revalias - Reverse engineer aliases

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers aliases

USAGE

sp__revalias

SEE ALSO

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.

SAMPLE OUTPUT

 1> sp__revalias

 Text
 -----------------------------------------------------------------------
 exec sp_addalias 'probe','dbo'
 exec sp_addalias 'ebarlow','dbo'

NAME

sp__revbindings - reverse engineer bindings in db

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

Reverse engineer bindings of user defined types to columns

SAMPLE OUTPUT

 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

NAME

sp__revdb - Reverse engineer database layout of the server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers layout of the databases on a server. Purposly excludes device "master", "model", and "tempdb".

USAGE

sp__revdb

SEE ALSO

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.

SAMPLE OUTPUT

 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

NAME

sp__revdevice - Reverse engineer device layout of the server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers layout of the devices on a server. Purposly excludes device "master", "diskdump", "tapedump1", and "tapedump2".

USAGE

sp__revdevice

SEE ALSO

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.

SAMPLE OUTPUT

 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

NAME

sp__revgroup - Reverse engineer groups layout of the server / database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers layout of the groups in your current database

USAGE

sp__revgroup

SEE ALSO

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.

SAMPLE OUTPUT

 1> sp__revgroup

 -------------------------------------------------
 exec sp_addgroup 'developer'
 exec sp_addgroup 'user'

NAME

sp__revindex - Reverse engineer indexes in current database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers indexes in your current database

USAGE

sp__revindex

SEE ALSO

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.

SAMPLE OUTPUT

 1> sp__revindex

 Text
 -------------------------------------------------------------------
 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

NAME

sp__revkey - Reverse engineer keys in the database

AUTHOR

Created By : "Chris Vilsack"

DESCRIPTION

reverse engineers keys in your current database.

USAGE

sp__revkey

SEE ALSO

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.

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

NAME

sp__revlogin - Reverse engineer logins for current server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers logins in your current server. Can only be run by sa.

USAGE

sp__revlogin

SEE ALSO

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.

SAMPLE OUTPUT

 1> sp__revlogin

 ---------------------------------------------
 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

in with "N.A." instead of the actual password.

NAME

sp__revmirror - Reverse engineer mirrors on current server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers mirror information

USAGE

sp__revuser

SEE ALSO

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.

SAMPLE OUTPUT

 1> sp__revmirror
 ----------------------------------------------------------
 disk mirror name='data2',mirror='/home/programs/sybase/datax'

NAME

sp__revrole - reverse engineer role granting sql for this server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

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

NAME

sp__revrule - Reverse engineer rules in the database

AUTHOR

Created By : "Chris Vilsack"

DESCRIPTION

reverse engineers rules in your current database.

USAGE

sp__revrule

SEE ALSO

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.

SAMPLE OUTPUT

 exec sp_bindrule 'cc1_sd_product_group', 'sd_product_group.fx'
 exec sp_bindrule 'cc2_sd_product_group', 'sd_product_group.int'
 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'

NAME

sp__revsegment - Reverse engineer segments of current server / database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers segment layout in your current database

USAGE

sp__revsegment

SEE ALSO

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.

SAMPLE OUTPUT

 1> sp__revsegment
 -------------------------------------------
 exec sp_addsegment 'yyy','datadevice'

NAME

sp__revtable - Reverse engineer tables of current server / database

AUTHOR

Edward Barlow ( SQL Technologies, inc. ). Modified by Victor Go and Viorel Vlad to add the constraint stuff.

DESCRIPTION

reverse engineers table layout in your current database. This version handles default, check, and primary key constraints.

USAGE

sp__revtable

SEE ALSO

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.

SAMPLE OUTPUT

 1> sp__revtable authors

 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
 )

NAME

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

reverse engineers types in your current database

USAGE

sp__revtype

SEE ALSO

sp__revalias, sp__revdb, sp__revdevice, sp__revgroup, sp__revindex, sp__revlogin, sp__revmirror, sp__revtype

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"

NAME

sp__revuser - Reverse engineer users of current server / database

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

reverse engineers user layout in your current database

USAGE

sp__revuser

SEE ALSO

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.

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'

NAME

sp__segment - Segment information

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

show segmentation

USAGE

sp__segment [ @segment ]

if @segment is passed, will only print info for the given segment

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

NAME

sp__server - Summary info about a server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

server summary report

USAGE

sp__server

SEE ALSO

The following procedures are called by sp__server: sp__helpdb, sp__helpdbdev, sp__devspace, sp__helpdevice, sp__helpmirror, sp__vdevno, sp__helpsegment, sp__helplogin.

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/sybase/datadev.dat     20.0MB   20.0MB    0.0MB
 datadev2       /disk1/sybase/datadev2.dat    19.5MB   17.0MB    2.5MB
 datadev3       /disk1/sybase/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

NAME

sp__size - rewrite

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

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             180KB         -52          73         182
 sp_dboption              116KB          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

(11 rows affected) (return status = 0)

NAME

sp__stat - Sybase iostat/vmstat equivalent for server

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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).

USAGE

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.

NOTES

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.

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

NAME

sp__syntax - Syntax of a stored procedure

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

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.

USAGE

sp__syntax [@procname]

you probably should pass in a parameter, otherwise you will get gobs of output.

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)

NAME

sp__trigger - Useful synopsis report of current database trigger schema

AUTHOR

Simon Walker, The SQL Workshop LTD.

DESCRIPTION

show all tables/triggers in current database

USAGE

sp__trigger [@tablename]

SEE ALSO

sp__helptrigger

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    .................. ............... ...............

NAME

sp__uptime - shows server uptime

AUTHOR

Edward Barlow ( SQL Technologies, inc. )

DESCRIPTION

 1> sp__uptime
 name       size_data  size_log owner
 ---------- ---------- -------- ----------
 statsdb    7.000000   2.000000 sa

NAME

sp__vdevno - Show used device numbers

AUTHOR

Simon Walker, The SQL Workshop LTD.

DESCRIPTION

Shows Used Device Numbers

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

NAME

sp__who - Check who is on server

AUTHOR

Simon Walker, The SQL Workshop LTD. Ed Barlow

DESCRIPTION

pretty version of sp_who

USAGE

sp__who [ @parameter ]

if @param is a login, it will only print information for that login. If @param is a database, it will only print information about users in that database.

SAMPLE OUTPUT

 1> exec sp__who

 spid logi   host     proc dbname     status   cmd              bk
 ---- ------ -------- ---- ---------- -------- ---------------- --
 1    sa     gamesrus 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

1> exec sp__who MyDb

spid logi hostinfo proc dbname status cmd bk

 ---- --------- --------         ----  ----------  -------- ---------------- --

15 gemalarms unix_monitor.pl 13299 gemalarms recv sle AWAITING COMMAN 0 20 gemalarms sybmon filter.pl 3784 gemalarms recv sle AWAITING COMMAN 0 31 gemalarms sybmon port_monitor.pl gemalarms recv sle AWAITING COMMAN 0 38 gemalarms monitor_appslog. 4236 gemalarms recv sle AWAITING COMMAN 0

NAME

sp__whoactive - Check who is doing something on server

AUTHOR

Androw Zanevsky, AZ Databases, Inc. 71232.3446@compuserve.com

DESCRIPTION

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.

USAGE

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

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

Total: 5 process(es). (* - active, @ - this process.)

NAME

sp__whodo - Check who is doing something on server

AUTHOR

Simon Walker & Ed Barlow (Ed rewrote Simons command)

DESCRIPTION

sp__who that drops awaiting commands and the sa stuff

SEE ALSO

sp__whoactive, sp__isactive, sp__iostat, sp__who

USAGE

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.

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

NAME

sp__whoe - Long format Who is on System

AUTHOR

Philippe Wathelet July 1998

DESCRIPTION

This is a substitute for Sybase's standard sp_who stored procedure

The output is clearer without line wrapping. You can help it with:

   isql -U<user> -S<server> -w150

allowing a width of up to 150 characters per line for example

USAGE

sp__whoe [ @login ]

if @login is passed, it will only print information for that login.

SAMPLE OUTPUT

 1> exec sp__whoe