Category: RDBMS

October 24

Learned yesterday an important lesson on the Oracle OTN XMLDB forum. A question was asked why a count via a full table scan was quicker than the same example while using an XMLIndex. “XMLIndex performance regarding // (any descendant))”. The poster used the // xpath expression to do his search.

As in most cases nowadays it is important to keep your statistics in order. An XMLIndex is not an “index” as such, it is an logical index / domain index, specially designed for use with XMLDB / XML data.

Read more…

October 16

Instead of always deleting whole registry keys to “clean up” Oracle software, there is also a normal statement on the command prompt to do this more effectively and in a more proper way. Only…I always forget what the statement was, so that’s why I post this now on this site…

😎


C:\> ver

Microsoft Windows XP [Version 5.1.2600]

C:\> sc

DESCRIPTION:
        SC is a command line program used for communicating with the
        NT Service Controller and services.

USAGE:

        sc {server} [command] [service name] {option1} {option2}...

        The option {server} has the form "\\ServerName"
        Further help on commands can be obtained by typing: "sc [command]"
        Commands:
          query-----------Queries the status for a service, or
                          enumerates the status for types of services.
          queryex---------Queries the extended status for a service, or
                          enumerates the status for types of services.
          start-----------Starts a service.
          pause-----------Sends a PAUSE control request to a service.
          interrogate-----Sends an INTERROGATE control request to a service.
          continue--------Sends a CONTINUE control request to a service.
          stop------------Sends a STOP request to a service.
          config----------Changes the configuration of a service (persistant).
          description-----Changes the description of a service.
          failure---------Changes the actions taken by a service upon failure.
          qc--------------Queries the configuration information for a service.
          qdescription----Queries the description for a service.
          qfailure--------Queries the actions taken by a service upon failure.
          delete----------Deletes a service (from the registry).
          create----------Creates a service. (adds it to the registry).
          control---------Sends a control to a service.
          sdshow----------Displays a service's security descriptor.
          sdset-----------Sets a service's security descriptor.
          GetDisplayName--Gets the DisplayName for a service.
          GetKeyName------Gets the ServiceKeyName for a service.
          EnumDepend------Enumerates Service Dependencies.

        The following commands don't require a service name:
        sc {server} {command} {option}
          boot------------(ok | bad) Indicates whether the last boot should
                          be saved as the last-known-good boot configuration
          Lock------------Locks the Service Database
          QueryLock-------Queries the LockStatus for the SCManager Database

EXAMPLE:
        sc start MyService

Would you like to see help for the QUERY and QUERYEX commands? [ y | n ]: y

QUERY and QUERYEX OPTIONS :

        If the query command is followed by a service name, the status
        for that service is returned.  Further options do not apply in
        this case.  If the query command is followed by nothing or one of
        the options listed below, the services are enumerated.
    type=    Type of services to enumerate (driver, service, all)
             (default = service)
    state=   State of services to enumerate (inactive, all)
             (default = active)
    bufsize= The size (in bytes) of the enumeration buffer
             (default = 4096)
    ri=      The resume index number at which to begin the enumeration
             (default = 0)
    group=   Service group to enumerate
             (default = all groups)

SYNTAX EXAMPLES

sc query                - Enumerates status for active services & drivers
sc query messenger      - Displays status for the messenger service
sc queryex messenger    - Displays extended status for the messenger service
sc query type= driver   - Enumerates only active drivers
sc query type= service  - Enumerates only Win32 services
sc query state= all     - Enumerates all services & drivers
sc query bufsize= 50    - Enumerates with a 50 byte buffer.
sc query ri= 14         - Enumerates with resume index = 14
sc queryex group= ""    - Enumerates active services not in a group
sc query type= service type= interact - Enumerates all interactive services
sc query type= driver group= NDIS     - Enumerates all NDIS drivers


.

So deleting an Oracle Listener Windows Service would be something like the following statement in a Windows CMD window

October 12

Did it. At last I managed to install Oracle V5.1.17.4 on MSDOS 6.22 under VMware Server 1.04. You probably think I am nuts. As someone said on our way home from Miracle Open World: “I would spend my time learning Oracle 11g”. Maybe. The person who said it, by the way, is an Oracle trainer, so what would I expect…

I / we (Bert Jan Meinders, an old colleague of mine) did our first attempt almost 1, 1 1/2 years ago. Our first attempt was based on VMware GSX software after we succesfully installed Oracle 4.1 on MSDOS. This was the first time (and until now the last time) I saw a total crash of VMware software. Oracle V5 was shipped under DOS with a memory manager called SQLPME (SQL Protected Mode Executive) V1.2.1.

This memory manager made extended memory available for use of Oracle software (database, forms etc), this way it could cross the 640 Kb boundary of conventional memory.

SQLPME was aggressive enough with its peeking and poking in memory that it crashed the VMware GSX environment at the time. Under VMware Server 1.04 it just hung itself up / nothing happened.

SQLPME crash

Click on the image to enlarge