Sponsored Content
Full Discussion: SQL redesigning
Top Forums Programming SQL redesigning Post 302482972 by ctsgnb on Thursday 23rd of December 2010 08:14:35 AM
Old 12-23-2010
SQL redesigning

The following request give the expected result (respecting a certain output formatting)
But i was wondering if the same result could be produced in a more "optimized way" (Oracle 9i by the way)

Code:
set feedback off
set pagesize 0
set trimspool on
ttitle off
btitle off
set verify off
set linesize 260
column name heading "TABLESPACE" format A25
column size_mb heading "SIZE (M)" format 99999990.9
column "USED (%)" format 990
select ts name,
    round(size_mb,2) size_mb,
        round(decode(total_size_mb,0,'',(total_size_mb-total_free_mb)*100/total_size_mb),0) "USED (%)",
        autoextensible "AUT"
from
(select a.tablespace_name ts,
        nvl(c.mb,0)+nvl(e.mb,0) size_mb,
              decode(lower(a.contents),'temporary',
                decode(sign(nvl(e.tot_mb,0)-nvl(e.mb,0)),1,'YES','NO'),
                decode(sign(nvl(c.tot_mb,0)-nvl(c.mb,0)),1,'YES','NO'))
                autoextensible,
              decode(lower(a.contents),'temporary',
                decode(sign(nvl(e.tot_mb,0)-nvl(e.mb,0)),1,
                  nvl(e.tot_mb,0),nvl(e.mb,0)),
                decode(sign(nvl(c.tot_mb,0)-nvl(c.mb,0)),1,
                  nvl(c.tot_mb,0),nvl(c.mb,0)))
                total_size_mb,
              decode(lower(a.contents),'temporary',
                decode(sign(nvl(e.tot_mb,0)-nvl(e.mb,0)),1,
                  nvl(e.tot_mb,0)-nvl(f.used_mb,0),
                    nvl(e.mb,0)-nvl(f.used_mb,0)),
                decode(sign(nvl(c.tot_mb,0)-nvl(c.mb,0)),1,
                  nvl(c.tot_mb,0)-nvl(c.mb,0)+nvl(d.free_mb,0),
                    nvl(d.free_mb,0)))
                total_free_mb
       from
         dba_tablespaces a,
         (select tablespace_name ts,
                 sum(extents) ext,
                 count(*) seg
          from dba_segments group by tablespace_name) b,
         (select tablespace_name ts,
                 sum(nvl(bytes,0))/1024/1024 mb,
                 count(*) files,
                 sum(decode(lower(autoextensible),'no',nvl(bytes,0),nvl(maxbytes,0)))/1024/1024 tot_mb
          from dba_data_files group by tablespace_name) c,
         (select tablespace_name ts,
                 sum(nvl(bytes,0))/1024/1024 free_mb
          from dba_free_space group by tablespace_name) d,
         (select tablespace_name ts,
                 sum(nvl(bytes,0)/1024/1024) mb,
                 count(*) files,
                 sum(decode(lower(autoextensible),'no',nvl(bytes,0),
                   nvl(maxbytes,0)))/1024/1024 tot_mb
          from dba_temp_files group by tablespace_name) e,
         (select tablespace_name ts,
                 sum(nvl(bytes_used,0))/1024/1024 used_mb
          from gv$temp_extent_pool group by tablespace_name) f
        where
          a.tablespace_name=b.ts(+) and
          a.tablespace_name=c.ts(+) and
          a.tablespace_name=d.ts(+) and
          a.tablespace_name=e.ts(+) and
          a.tablespace_name=f.ts(+))
order by 1 desc
/

 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calling SQL LDR and SQL plus scripts in a shell script

Hi- I am trying to achieve the following in a script so I can schedule it on a cron job. I am fairly new to the unix environment... I have written a shell script that reads a flat file and loads the data into an Oracle table (Table1) via SQLLDR. This Works fine. Then, I run a nested insert... (5 Replies)
Discussion started by: rajagavini
5 Replies

2. Shell Programming and Scripting

unix variables from sql / pl/sql

How do I dynamically assign the below output to unix shell variables so I can build a menu in a shell script? Example: var1 = 1 var2= SYSTEM var3 = 2 var4= UNDOTBS1 and so on, then in the shell script I can use the variables to build a menu. set serveroutput on declare... (2 Replies)
Discussion started by: djehres
2 Replies

3. UNIX for Dummies Questions & Answers

Execute PL/SQL function from Unix script (.sql file)

Hi guys, I am new on here, I have a function in oracle that returns a specific value: create or replace PACKAGE BODY "CTC_ASDGET_SCHED" AS FUNCTION FN_ASDSCHEDULE_GET RETURN VARCHAR2 AS BEGIN DECLARE ASDSchedule varchar2(6); ASDComplete... (1 Reply)
Discussion started by: reptile
1 Replies

4. Shell Programming and Scripting

How to use sql data file in unix csv file as input to an sql query from shell

Hi , I used the below script to get the sql data into csv file using unix scripting. I m getting the output into an output file but the output file is not displayed in a separe columns . #!/bin/ksh export FILE_PATH=/maav/home/xyz/abc/ rm $FILE_PATH/sample.csv sqlplus -s... (2 Replies)
Discussion started by: Nareshp
2 Replies

5. Shell Programming and Scripting

Execute multiple SQL scripts from single SQL Plus connection

Hi! I would like to do a single connection to sqlplus and execute some querys. Actually I do for every query one connection to database i.e echo 'select STATUS from v$instance; exit' > $SQL_FILE sqlplus user/pass@sid @$SQL_FILE > $SELECT_RESULT echo 'select VERSION from v$instance;... (6 Replies)
Discussion started by: guif
6 Replies

6. UNIX for Advanced & Expert Users

Call parallel sql scripts from shell and return status when both sql are done

Hi Experts: I have a shell script that's kicked off by cron. Inside this shell script, I need to kick off two or more oracle sql scripts to process different groups of tables. And when both sql scripts are done, I will continue in the shell script to do other things like checking processing... (3 Replies)
Discussion started by: huasheng8
3 Replies

7. Programming

SQL - is it possible

I have a table with the following structure: trxNo expiryDate remoteTrxNo 445455 2011-06-26 0 445455 2011-02-26 0 445999 2011-07-30 0 445999 2011-03-28 0 There are other columns that make the records unique but they are not relevant to my... (4 Replies)
Discussion started by: praktikal
4 Replies

8. Shell Programming and Scripting

Run SQL thru shell script: how to get a new line when run sql query?

Hi, this's Pom. I'm quite a new one for shell script but I have to do sql on shell script to query some information from database. I found a concern to get a new line...When I run my script, it retrieves all data as wondering but it's shown in one line :( What should I do? I'm not sure that... (2 Replies)
Discussion started by: Kapom
2 Replies

9. Shell Programming and Scripting

Storing multiple sql queries output into variable by running sql command only once

Hi All, I want to run multiple sql queries and store the data in variable but i want to use sql command only once. Is there a way without running sql command twice and storing.Please advise. Eg : Select 'Query 1 output' from dual; Select 'Query 2 output' from dual; I want to... (3 Replies)
Discussion started by: Rokkesh
3 Replies
nvlist_add_boolean(3NVPAIR)				 Name-value Pair Library Functions			       nvlist_add_boolean(3NVPAIR)

NAME
nvlist_add_boolean, nvlist_add_boolean_value, nvlist_add_byte, nvlist_add_int8, nvlist_add_uint8, nvlist_add_int16, nvlist_add_uint16, nvlist_add_int32, nvlist_add_uint32, nvlist_add_int64, nvlist_add_uint64, nvlist_add_string, nvlist_add_nvlist, nvlist_add_nvpair, nvlist_add_boolean_array, nvlist_add_byte_array, nvlist_add_int8_array, nvlist_add_uint8_array, nvlist_add_int16_array, nvlist_add_uint16_array, nvlist_add_int32_array, nvlist_add_uint32_array, nvlist_add_int64_array, nvlist_add_uint64_array, nvlist_add_string_array, nvlist_add_nvlist_array - add new name-value pair to nvlist_t SYNOPSIS
cc [ flag... ] file... -lnvpair [ library... ] #include <libnvpair.h> int nvlist_add_boolean(nvlist_t *nvl, const char *name); int nvlist_add_boolean_value(nvlist_t *nvl, const char *name, boolean_t val); int nvlist_add_byte(nvlist_t *nvl, const char *name, uchar_t val); int nvlist_add_int8(nvlist_t *nvl, const char *name, int8_t val); int nvlist_add_uint8(nvlist_t *nvl, const char *name, uint8_t val); int nvlist_add_int16(nvlist_t *nvl, const char *name, int16_t val); int nvlist_add_uint16(nvlist_t *nvl, const char *name, uint16_t val); int nvlist_add_int32(nvlist_t *nvl, const char *name, int32_t val); int nvlist_add_uint32(nvlist_t *nvl, const char *name, uint32_t val); int nvlist_add_int64(nvlist_t *nvl, const char *name, int64_t val); int nvlist_add_uint64(nvlist_t *nvl, const char *name, uint64_t val); int nvlist_add_string(nvlist_t *nvl, const char *name, const char *val); int nvlist_add_nvlist(nvlist_t *nvl, const char *name, nvlist_t *val); int nvlist_add_nvpair(nvlist_t *nvl, nvpair_t *nvp); int nvlist_add_boolean_array(nvlist_t *nvl, const char *name, boolean_t *val, uint_t nelem); int nvlist_add_byte_array(nvlist_t *nvl, const char *name, uchar_t *val, uint_t nelem); int nvlist_add_int8_array(nvlist_t *nvl, const char *name, int8_t *val, uint_t nelem); int nvlist_add_uint8_array(nvlist_t *nvl, const char *name, uint8_t *val, uint_t nelem); int nvlist_add_int16_array(nvlist_t *nvl, const char *name, int16_t *val, uint_t nelem); int nvlist_add_uint16_array(nvlist_t *nvl, const char *name, uint16_t *val, uint_t nelem); int nvlist_add_int32_array(nvlist_t *nvl, const char *name, int32_t *val, uint_t nelem); int nvlist_add_uint32_array(nvlist_t *nvl, const char *name, uint32_t *val, uint_t nelem); int nvlist_add_int64_array(nvlist_t *nvl, const char *name, int64_t *val, uint_t nelem); int nvlist_add_uint64_array(nvlist_t *nvl, const char *name, uint64_t *val, uint_t nelem); int nvlist_add_string_array(nvlist_t *nvl, const char *name, char *const *val, uint_t nelem); int nvlist_add_nvlist_array(nvlist_t *nvl, const char *name, nvlist_t **val, uint_t nelem); PARAMETERS
nvl The nvlist_t (name-value pair list) to be processed. nvp The nvpair_t (name-value pair) to be processed. name Name of the nvpair (name-value pair). nelem Number of elements in value (that is, array size). val Value or starting address of the array value. DESCRIPTION
These functions add a new name-value pair to an nvlist_t. The uniqueness of nvpair name and data types follows the nvflag argument speci- fied for nvlist_alloc(). See nvlist_alloc(3NVPAIR). If NV_UNIQUE_NAME was specified for nvflag, existing nvpairs with matching names are removed before the new nvpair is added. If NV_UNIQUE_NAME_TYPE was specified for nvflag, existing nvpairs with matching names and data types are removed before the new nvpair is added. If neither was specified for nvflag, the new nvpair is unconditionally added at the end of the list. The library preserves the order of the name-value pairs across packing, unpacking, and duplication. Multiple threads can simultaneously read the same nvlist_t, but only one thread can actively change a given nvlist_t at a time. The caller is responsible for the synchronization. The nvlist_add_boolean() function is deprecated. The nvlist_add_boolean_value() function should be used instead. RETURN VALUES
These functions return 0 on success and an error value on failure. ERRORS
These functions will fail if: EINVAL There is an invalid argument. ENOMEM There is insufficient memory. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +----------------------------+------------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +----------------------------+------------------------------+ |Interface Stability | Evolving | +----------------------------+------------------------------+ |MT-Level | MT-Safe | +----------------------------+------------------------------+ SEE ALSO
libnvpair(3LIB), attributes(5) SunOS 5.10 2 Feb 2004 nvlist_add_boolean(3NVPAIR)
All times are GMT -4. The time now is 02:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy