Skip to Main Content

Breadcrumb

Question and Answer

Tom Kyte

Thanks for the question, Jeff.

Asked: June 28, 2000 - 10:26 am UTC

Last updated: October 25, 2004 - 1:25 am UTC

Version: 8.1.6.0.0

Viewed 1000+ times

You Asked

Is there a way to display what word size is being used? If I go into a shop with databases already installed, how do I tell if 8.1.6 is running 32-bit or 64-bit?

Thanks!
-jw


and Tom said...

Well, it should be in the sqlplus banner:

SQL*Plus: Release 8.0.5.0.0 - Production on Fri May 19 14:58:14 2000
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Connected to:
Oracle8 Enterprise Edition Release 8.0.5.2.1 64bit - Production
With the Partitioning and Objects options
PL/SQL Release 8.0.5.2.0 - Production



SQL*Plus: Release 8.1.5.0.0 - Production on Wed Apr 5 11:08:44 2000

(c) Copyright 1999 Oracle Corporation. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.5.0.0, 64-bit - Production
With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 - Production


but a select on v$type_size would probably clue us in as well (this is on 32bit):


sys@8i> select * from v$type_size;

COMPONEN TYPE DESCRIPTION TYPE_SIZE
-------- -------- -------------------------------- ----------
S EWORD EITHER WORD 4
S EB1 EITHER BYTE 1 1
S EB2 EITHER BYTE 2 2
S EB4 EITHER BYTE 4 4
S UWORD UNSIGNED WORD 4
S UB1 UNSIGNED BYTE 1 1
S UB2 UNSIGNED BYTE 2 2
S UB4 UNSIGNED BYTE 4 4
S SWORD SIGNED WORD 4
S SB1 SIGNED BYTE 1 1
S SB2 SIGNED BYTE 2 2
S SB4 SIGNED BYTE 4 4
S BOOLEAN BOOLEAN 4
S FLOAT FLOAT 4
S DOUBLE DOUBLE 8
S SIZE_T SIZE_T 4
S PTR_T PTR_T 4
K KDBA DATABASE BLOCK ADDRESS 4
K KTNO TABLE NUMBER IN CLUSTER 1
K KSCN SYSTEM COMMIT NUMBER 8
K KXID TRANSACTION ID 8
K KUBA UNDO ADDRESS 8
KCB KCBH BLOCK COMMON HEADER 20
KTB KTBIT TRANSACTION VARIABLE HEADER 24
KTB KTBBH TRANSACTION FIXED HEADER 48
KDB KDBH DATA HEADER 14
KDB KDBT TABLE DIRECTORY ENTRY 4
KTE KTECT EXTENT CONTROL 44
KTE KTECH EXTENT CONTROL 72
KTE KTETB EXTENT TABLE 8
KTS KTSHC SEGMENT HEADER 8
KTS KTSFS SEGMENT FREE SPACE LIST 20
KTU KTUBH UNDO HEADER 16
KTU KTUXE UNDO TRANSACTION ENTRY 40
KTU KTUXC UNDO TRANSACTION CONTROL 104
KDX KDXCO INDEX HEADER 16
KDX KDXLE INDEX LEAF HEADER 32
KDX KDXBR INDEX BRANCH HEADER 24

38 rows selected.







Rating

  (9 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

32 or 64-bit ?

Neil McLaughlin, September 13, 2001 - 5:13 am UTC

Not all banners display this information. What are you supposed to look at in v$type_size to determine the architecture?

Tom Kyte
September 13, 2001 - 11:24 am UTC

stand corrected on that....


32 or 64 bit

fz, September 13, 2001 - 11:48 am UTC

My database1 with 32-bit (confirmed by sqlplus banner) and database2 with 64-bit (confirmed by banner) both give that eword has type_size=4.

On the other hand, we can find out if 32 or 64 bit by:
file $ORACLE_HOME/bin/oracle

Tom Kyte
September 13, 2001 - 12:35 pm UTC

I don't have a 64bit instance at my disposal right now -- someone care to post the output of v$type_size in total here?

32 or 64 bit

fz, September 13, 2001 - 1:29 pm UTC

Here is what from my db:

SQL*Plus: Release 8.1.6.0.0 - Production on Thu Sep 13 11:27:22 2001

(c) Copyright 1999 Oracle Corporation.  All rights reserved.

Enter password:

Connected to:
Oracle8i Enterprise Edition Release 8.1.6.0.0, 64 bit - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production

SQL> select * from v$type_size;

COMPONEN TYPE     DESCRIPTION                         TYPE_SIZE
-------- -------- -------------------------------- ------------
S        EWORD    EITHER WORD                                 4
S        EB1      EITHER BYTE 1                               1
S        EB2      EITHER BYTE 2                               2
S        EB4      EITHER BYTE 4                               4
S        UWORD    UNSIGNED WORD                               4
S        UB1      UNSIGNED BYTE 1                             1
S        UB2      UNSIGNED BYTE 2                             2
S        UB4      UNSIGNED BYTE 4                             4
S        SWORD    SIGNED WORD                                 4
S        SB1      SIGNED BYTE 1                               1
S        SB2      SIGNED BYTE 2                               2
S        SB4      SIGNED BYTE 4                               4
S        BOOLEAN  BOOLEAN                                     4
S        FLOAT    FLOAT                                       4
S        DOUBLE   DOUBLE                                      8
S        SIZE_T   SIZE_T                                      8
S        PTR_T    PTR_T                                       8
K        KDBA     DATABASE BLOCK ADDRESS                      4
K        KTNO     TABLE NUMBER IN CLUSTER                     1
K        KSCN     SYSTEM COMMIT NUMBER                        8
K        KXID     TRANSACTION ID                              8
K        KUBA     UNDO ADDRESS                                8
KCB      KCBH     BLOCK COMMON HEADER                        20
KTB      KTBIT    TRANSACTION VARIABLE HEADER                24
KTB      KTBBH    TRANSACTION FIXED HEADER                   48
KDB      KDBH     DATA HEADER                                14
KDB      KDBT     TABLE DIRECTORY ENTRY                       4
KTE      KTECT    EXTENT CONTROL                             44
KTE      KTECH    EXTENT CONTROL                             72
KTE      KTETB    EXTENT TABLE                                8
KTS      KTSHC    SEGMENT HEADER                              8
KTS      KTSFS    SEGMENT FREE SPACE LIST                    20
KTU      KTUBH    UNDO HEADER                                16
KTU      KTUXE    UNDO TRANSACTION ENTRY                     40
KTU      KTUXC    UNDO TRANSACTION CONTROL                  104
KDX      KDXCO    INDEX HEADER                               16
KDX      KDXLE    INDEX LEAF HEADER                          32
KDX      KDXBR    INDEX BRANCH HEADER                        24

38 rows selected.
                                                          

Tom Kyte
September 13, 2001 - 1:40 pm UTC

Ok, here is a way to do this on Unix ports:


$ cd $ORACLE_HOME/bin
$ file oracle

That should tell you whether it is a 64 or 32 bit executable.



Reader

Chirag, September 14, 2001 - 6:02 am UTC

my sql plus can't show me 64bit - Production

so its run on 32 bit ?

SQL*Plus: Release 8.0.6.0.0 - Production on Fri Sep 14 15:32:21 2001

(c) Copyright 1999 Oracle Corporation.  All rights reserved.


Connected to:
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production

SQL> select * from v$type_size;

COMPONEN TYPE     DESCRIPTION                      TYPE_SIZE
-------- -------- -------------------------------- ---------
S        EWORD    EITHER WORD                              4
S        EB1      EITHER BYTE 1                            1
S        EB2      EITHER BYTE 2                            2
S        EB4      EITHER BYTE 4                            4
S        UWORD    UNSIGNED WORD                            4
S        UB1      UNSIGNED BYTE 1                          1
S        UB2      UNSIGNED BYTE 2                          2
S        UB4      UNSIGNED BYTE 4                          4
S        SWORD    SIGNED WORD                              4
S        SB1      SIGNED BYTE 1                            1
S        SB2      SIGNED BYTE 2                            2
S        SB4      SIGNED BYTE 4                            4
S        BOOLEAN  BOOLEAN                                  4
S        FLOAT    FLOAT                                    4
S        DOUBLE   DOUBLE                                   8
S        SIZE_T   SIZE_T                                   4
S        PTR_T    PTR_T                                    4
K        KDBA     DATABASE BLOCK ADDRESS                   4
K        KTNO     TABLE NUMBER IN CLUSTER                  1
K        KSCN     SYSTEM COMMIT NUMBER                     8
K        KXID     TRANSACTION ID                           8

COMPONEN TYPE     DESCRIPTION                      TYPE_SIZE
-------- -------- -------------------------------- ---------
K        KUBA     UNDO ADDRESS                             8
KCB      KCBH     BLOCK COMMON HEADER                     20
KTB      KTBIT    TRANSACTION VARIABLE HEADER             24
KTB      KTBBH    TRANSACTION FIXED HEADER                48
KDB      KDBH     DATA HEADER                             14
KDB      KDBT     TABLE DIRECTORY ENTRY                    4
KTE      KTECT    EXTENT CONTROL                          44
KTE      KTECH    EXTENT CONTROL                          72
KTE      KTETB    EXTENT TABLE                             8
KTS      KTSHC    SEGMENT HEADER                           8
KTS      KTSFS    SEGMENT FREE SPACE LIST                 20
KTU      KTUBH    UNDO HEADER                             16
KTU      KTUXE    UNDO TRANSACTION ENTRY                  40
KTU      KTUXC    UNDO TRANSACTION CONTROL               104
KDX      KDXCO    INDEX HEADER                            16
KDX      KDXLE    INDEX LEAF HEADER                       32
KDX      KDXBR    INDEX BRANCH HEADER                     24

38 rows selected.

SQL>  

Tom Kyte
September 14, 2001 - 10:29 am UTC

See the comment above, goto the oracle home for the database and issue:

file oracle


and see what it says.

lamriN, September 16, 2001 - 4:33 am UTC

My oracle 816 server is on Windows NT4 pc.

Sqlplus bannar shown as follows:

SQL*Plus: Release 8.0.6.0.0 - Production on Thu Sep 16 11:21:38 1999

(c) Copyright 1999 Oracle Corporation. All rights reserved.


Connected to:
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production

Then i found oracle.exe file at oraclehome\bin.
c:\>oracle
Hit any key to exit server: l

c:\>

Here also i didn't get any info regarding 32/64 bit.

Hope that 'file oracle' is unix command. How can i check the same in NT?.

Please enlighten us.

Tom Kyte
September 16, 2001 - 3:19 pm UTC

thats easy. NT = 32bit. 64bit coming in the future but right now, you have 32bit.

It doesn't work in Compaq digital Unix

Lucy, October 25, 2001 - 11:52 am UTC

I have Oracle 8.1.6.0.0 installed in Compaq Tru64 Unix, the sqlplus doesn't tell me anything about the 32 or 64 bits, when I do "file oracle", it shows me
$ file oracle
oracle: COFF format alpha dynamically linked, demand paged setuid executable or
object module not stripped - version 3.13-12

Nothing there neither, how can I find out my db is 32 or 64 bits?

Thanks

Tom Kyte
October 25, 2001 - 12:38 pm UTC

Oracle software running on Compaq Tru64 is always 64-bits software.
The data returned by server manager or file oracle will not show info about
64-bits.



HP Unix and Oracle 8.1.7

Sanjay Raj, October 25, 2001 - 1:41 pm UTC

I tried running
$file oracle
and this is what I go

$ file oracle
oracle: PA-RISC1.1 shared executable dynamically linked -not stripped

It still does not show 32 or 64 bit??

Tom Kyte
October 25, 2001 - 7:18 pm UTC

Two ways:

1. Go to the Installer and check the file $ORACLE_HOME/orainst/README.FIRST.

2. Type the following:

file oracle

If ELF-64 format is returned, the installed Oracle is the 64-bit release.


(you have 32bit)



As far I know...

Harri, October 25, 2001 - 2:39 pm UTC

32bit is never mentioned in banners and only sometimes in file-command output. 64 bit is mentioned always in banner but not necessarily by file-command if OS and oracle are always 64bit in that environment(like True64 Unix).

Examples:

True64Unix, 64bit os, 64bit oracle (always)
Oracle7 Server Release 7.3.4.5.0 with the 64-bit option - Production
$ file oracle
oracle: COFF format alpha demand paged setuid setgid executable or object module not stripped - version 3.11-10
---
Solaris8, 64bit os, 32bit oracle:
Oracle9i Enterprise Edition Release 9.0.1.1.0 - Production
$ file oracle
oracle: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
---
HP-UX 11, 64bit os, 32bit oracle:
Oracle7 Server Release 7.3.4.4.0 - Production
$ file oracle
oracle: PA-RISC1.1 shared executable dynamically linked -not stripped
--
Solaris8, 64bit os, 64bit oracle:
Oracle8i Enterprise Edition Release 8.1.6.1.0 - 64bit Production
$ file oracle
oracle: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped



Another Way....

Reader, October 25, 2004 - 1:25 am UTC

SQL> desc x$ksmmem
 Name                                                Type
 -------------------------------------        ---------
 ADDR                                               RAW(4)
 INDX                                               NUMBER
 INST_ID                                            NUMBER
 KSMMMVAL                                           RAW(4)
-> 32 bit
Raw(8) -> 64 bit.

Got it from 
http://oraperf.sourceforge.net/
Real COOL Site.
 

More to Explore

VLDB

If you are new to partitioning, check out Connor McDonald's introduction series here.

VLDB

Documentation set on VLDB and Partitioning.