Advaced Compression Limitations -- Based on no of columns

URGENT NEED - Would appreciate your help -
Till date we worked on 10g where in our database is holding a partitioned table with less than 255 columns with each partition size of 70GB , and is being compressed and moved to history database ,we achieved good compression ratios in this activity.
But once the table is modified with more than 305 columns because of Business Requirement , the compresstion ratio is drastically reduced from 30 or 40 percent to only 5%.
So ,now we are looking at advanced compression i.e using , where we want to confirm whether this limitation exists even in 11g or overcomed.
Regards,
Phani Kumar P
+919948677317
[email protected]

To advise you would require the DDL for the table and the business rules being followed that show what each column is for and its relationship to the other columns in the table.
Generally speaking when I see more than 50 columns in a table, there is the very rare exception, it is because people are thinking horizontally not vertically. Consider the following two tables.
CREATE TABLE bad_design (
row_identifie r NUMBER,
attribute1      NUMBER,
attribute_val1  VARCHAR2(20),
attribute2      NUMBER,
attribute_val2  VARCHAR2(20));
CREATE TABLE good_design (
row_identifier   NUMBER,
attribute_number NUMBER,
attribute_value  VARCHAR2(20));Both can be extended to hold 500 attributes. The first one will add 1000 columns. The second none.
Likely what you are experiencing is something like this.
A Boeing 747 contains more than 1.2 million parts. No sane person would ever consider a plane-parts inventory to start with program_id and line_number followed by 1.199 million columns. But that is the thinking that often leads to 305 columns.
If not then you are going to need to either post a lot of information or go back and examine what it is that appears to justify any object having 304 non-relational attributes.

Similar Messages

  • How can I sum the values in a given column on sheet 1 i.e. A1:A50 based on the adjacent columns specific value i.e. B1:B50 = "Living Room" on sheet 2

    How can I sum the values in a given column on sheet 1 i.e. A1:A50 based on the adjacent columns specific value i.e. B1:B50 = “Dinning Room” on sheet 2
    For Example:
    SHEET 1
    A
    B
    $50
    Dinning Room
    $800
    Dinning Room
    $300
    Kitchen
    $1,000
    Master Bedroom
    $100
    Dinning Room
    SHEET 2
    Display the total SUM amount of each Project based on Sheet 1
    Project Name
    Total Cost
    Dinning Room
    $950
    Kitchen
    $300

    Would be a good idea to open iWork Formulas and Functions User Guide and search for the description of the function named SUMIF
    The Guide is available for every user thru the Help menu.
    Yvan KOENIG (VALLAURIS, France) jeudi 19 mai 2011 17:32:42
    Please :
    Search for questions similar to your own before submitting them to the community
    To be the AW6 successor, iWork MUST integrate a TRUE DB, not a list organizer !

  • Select List in Manual Tabular Form based on a previous column

    I have a manual tabular form that have several columns One column (vendor) is a select list that should be based on a previous column (Vendor Type - Internal/External). So if the user selects Internal for Vendor Type, the Vendor column's select list should only contain those vendors with type of Internal. By the way, it also uses APEX collections.
    select
      apex_item.hidden                   (1,C015) STATUS,
      apex_item.checkbox                 (2,SEQ_ID,'title="check to delete"') CHECKBOX,
      case
        when (c001 is not null and c002 is not null) then
          '<a onclick="return false;" href="f?p='||:APP_ID||':20:'||:APP_SESSION||'::NO:20:P20_ID,P20_REQ_ID,P20_SEQ_ID:'||C001||','||C002||','||SEQ_ID||'"><img alt="" src="/i/ed-item.gif"></a>'
      end ||
      apex_item.hidden                   (4,C001) ID,
      apex_item.hidden                   (5,C002) JOB_QUOTE_ID,
      apex_item.date_popup2              (6,C003,'MM/DD/YYYY',11,2000,'onChange="f_set_end_date(this.id,'|| ROWNUM || ');"') ||
      apex_item.select_list_from_query   (7,C004,'select svcs_description d, svcs_code r from csrsr_service_codes order by 1 asc',null,'YES',null,'-Select-') || '<BR />' ||
      apex_item.date_popup2              (8,C005,'MM/DD/YYYY',11) ||
      apex_item.text                     (9,C006,8,15,'style="text-align:right;"') || '<BR />' ||
      apex_item.select_list              (10,C007,'Staff;S,External;E',null,'YES',null,'-Select-') ||
      apex_item.select_list_from_query_xl(11,C008,'select vendor_name d, vendor_number r from csrsr_vendors_v',null,'YES',null,'-Select-') || '<BR />' ||
      apex_item.text                     (12,C009,50,100,'colspan=2') COL12,
      apex_item.text                     (13,to_char(to_number(C010),'FML999G999G999G999G990D00'),10,15,'style="text-align:right;"') AMT1,
      apex_item.text                     (14,to_char(to_number(C011),'FML999G999G999G999G990D00'),10,15,'style="text-align:right;"') AMT2,
      apex_item.text                     (15,to_char(to_number(C012),'FML999G999G999G999G990D00'),10,15,'style="text-align:right;"') AMT3,
      apex_item.text                     (16,to_char(to_number(C013),'FML999G999G999G999G990D00'),10,15,'style="text-align:right;"') AMT4,
      apex_item.hidden                   (24,C001) ||
      apex_item.hidden                   (25,C002) ||
      apex_item.hidden                   (3,SEQ_ID) ||
      apex_item.text                     (17,to_char(to_number(C014),'FML999G999G999G999G990D00'),10,15,'style="text-align:right;"') CHBK_AMT,
      'value' COLTYPE
    from
      apex_collections
    where
      collection_name = 'CSRSR_JOBCOSTS_C' and
      C015 in ('O','U','N')
    union all
    select
      apex_item.hidden                   (1,null) STATUS,
      apex_item.checkbox                 (2,null,'title="check to delete"') CHECKBOX,
      apex_item.hidden                   (24,null) ||
      apex_item.hidden                   (4,null) ID,
      apex_item.hidden                   (25,null) ||
      apex_item.hidden                   (5,null) JOB_QUOTE_ID,
      apex_item.date_popup2              (6,null,'MM/DD/YYYY',11,2000,'onChange="f_set_end_date(this.id,'|| ROWNUM || ');"') ||
      apex_item.select_list_from_query   (7,null,'select svcs_description d, svcs_code r from csrsr_service_codes order by 1 asc',null,'YES',null,'-Select-') || '<BR />' ||
      apex_item.date_popup2              (8,null,'MM/DD/YYYY',11) ||
      apex_item.text                     (9,null,8,15,'style="text-align:right;"') || '<BR />' ||
      apex_item.select_list              (10,null,'Staff;S,External;E',null,'YES',null,'-Select-') ||
      apex_item.select_list_from_query_xl(11,null,'select vendor_name d, vendor_number r from csrsr_vendors_v',null,'YES',null,'-Select-') || '<BR />' ||
      apex_item.text                     (12,null,50,100,'colspan=2')  COL12,
      apex_item.text                     (13,null,10,15,'style="text-align:right;"') AMT1,
      apex_item.text                     (14,null,10,15,'style="text-align:right;"') AMT2,
      apex_item.text                     (15,null,10,15,'style="text-align:right;"') AMT3,
      apex_item.text                     (16,null,10,15,'style="text-align:right;"') AMT4,
      apex_item.hidden                   (24,null) ||
      apex_item.hidden                   (25,null) ||
      apex_item.hidden                   (3,null) ||
      apex_item.text                     (17,null,10,15,'style="text-align:right;"') CHBK_AMT,
      'value' COLTYPE
    from
      dual
    How can I accomplish this?
    Application Express 4.1.2    
    Oracle 10g Rel 2
    Robert

    Hi,
    Then you are probably looking cascading select list in tabular form?
    http://dbswh.webhop.net/htmldb/f?p=BLOG:READ:0::::ARTICLE:2003800346210117
    Regards,
    Jari

  • Compressed tables with more than 255 columns

    hi,
    Would anyone have a sql to find out compressed tables with more than 255 columns.
    Thank you
    Jonu

    SELECT table_name,
           Count(column_name)
    FROM   user_tab_columns utc
    WHERE  utc.table_name IN (SELECT table_name
                              FROM   user_tables
                              WHERE  compression = 'ENABLED')
    HAVING Count(column_name) > 255
    GROUP  BY table_name

  • Tamplate based button in  Report Column

    Hi there,
    Is there any way to put tamplate based button into report column. I have a "sliding doors" css button in my theme's CSS file and I would like to use in in the report column.
    Thanks

    Yes, I can set "Strip HTML to No" but how would I use my button template. I did create a button template under Apex and modifying theme css file, right now I would like to use this button in my report colum, basically this button will delete uploaded files from the table.
    I took this idea to reate my button template: http://woork.blogspot.com/2008/06/beautiful-css-buttons-with-icon-set.html

  • Compression, limiting, final gain control. Which order do they go in??

    Hi
    Im fairly new to mastering a track. Ive been getting into it the last couple of months. Just learning and practising.
    I got my track eq'ed up just right in logic, i have then bounced. Ive imported my audio mixdown back into logic. I now want to master my track. Is there any particular order to apply compression, limiter and final gain plugins?? Ive tried compressing, then limiting, this sounds real good. Is there a limit to how many mastering plugins to put on?? Ive heard if you compress, then limit, then add a final mix enhancer, that this is a good way to go.
    Sometimes after ive compressed a track, bounced, then added a limiter to the compressed audio track, that when certain sounds come in in the mix, the volume falls for for a split second. Is this to do with eq, or do i need to tweak my compression and limiting??
    I know there are many ways to go down the mastering route.
    Share with me some of your different ways that you mix and master a track.
    Cheers
    digi

    *EQ
    *Multi Compressor
    *Exciter/Enhancer (if needed)
    *Stereo Imaging (if needed)
    *Loudness Maximizer/Limiter
    *Multimeter to check Correlation/Spectrum

  • How do I null out an item based on a database column before display?

    I am using Apex 3.2
    I have an item that is based on database column. My customer wants me to "blank out" the item before it is displayed so the user will have to enter a new value in place of the one that is in the database.
    I have tried using a "before region" calculation to set the item to NULL. I can see the value getting set in the debug after the row fetch has occurred, but when the item is displayed, it contains the value from the database, not my calculated valuie.
    I also tried using an unsourced text field and then doing an after submit calculation to set the value of the database column item from there, but no luck that way either.
    Also tried clearing the item cache, but I think that happens way too early.
    There must be a simple way to do this..
    Any suggestion?

    No problem user486652 (name?),
    Yes, the $s function is one of ApEx's built-in's - see the ApEx documentation under API Reference, Javascript API's, and you'll find a wealth of built-in functions that do all sorts of things. For Javascript in general, take a look at www.w3schools.com for some really good tutorial and reference material - I use it constantly.
    Ok, so you want to set the browser field to empty after the page loads. Since this is a page event, it isn't something that will fire for a form field element so you don't want the code there. In ApEx 3.2, edit the attributes for the page, and you'll see a setting called "HTML Body Attribute". You'll see a helpful bullet note below the setting saying this is the place to add onload events. The proper syntax will be:
    onload="$s('P2_REMEDY_TICKET', '');"Once ApEx puts everything together and the page renders, this code will tell the browser to run that $s function after the page loads.
    But be aware - if you take a look at the help for that setting, you'll see that it mentions that this will only work if your page template includes the #ONLOAD# substitution string. Not sure if all ApEx-supplied page templates already have #ONLOAD#, but every one I've used does. If your code still doesn't work, check your page tempate. In the Definition region, under Header, you should see a body tag with something like:
    <body #ONLOAD#>...
    ...If that's there, your page template supports the HTML Body Attribute. If your body tag doesn't have an #ONLOAD#, add it.
    Hope this helps,
    John
    If you find this information useful, please mark the post "helpful" or "correct" so that others may benefit as well.*

  • Dynamically adjust table row height based on data in column

    Hi all,
    I'm using JDeveloper 11.1.1.5.0 and have a requirement for a table to adjust the height of its rows depending on the data in the columns. One of the columns in the table is a rich text description field and I have the 'rows' property set to 13. This field could have twenty lines of text/images or just one. The users would like the page to show all twenty lines of text without having to scroll but the table has the same height for all the rows (that I set to 13) and provides a scroll bar when the data exceeds this size. My users do not like to scroll, and want the height of each row to be determined by the data in it. I looked at a few options and also did a search online, but was unable to find anything to fulfill this requirement. Do you know of how I could change the height of each row in the table so that it fits the data that it holds?
    I have an example of my table at: <b>Table with Set Row Height</b>
    As you see, the picture has to be scrolled so that the whole picture is visible. The user requirement is to adjust the row height to show the full picture. Ideally the next two rows would shrink, but that would be a nice to have.
    Thanks in advance for any pointers or help.

    Hi Frank,
    Thank you for replying to my question, I truly appreciate your help.
    I tried to use the autoHeightRows to adjust the height of my rows but was unsuccessful. If I understand the autoHeightRows property correctly, this is used for setting the height of the whole table. If this is incorrect and it can be used for setting the height of individual rows in the table, please correct me. I have the 'Rows' property of the richTextEditor set to 13 and this is the height that I would like to make dynamic based on the data.
    My users requirement is for the height to be big enough for the data in each row of the table (the table has a description column and the height of each row should be determined by the data contained in it). I updated my <u><b>Screen Shot</b></u> to show the desired layout and what is currently being generated though ADF (http://www.flickr.com/photos/87583386@N05/) .
    I have three rows in the example (in actuality these are around 50) and the text in each row can vary. The users would like to see the full text/image in each row without having to scroll each row. Currently my table is within Panel Box, which is inside a PanelGroupLayout-Scroll which is in a PanelStretchLayout. I tried to put the table by itself with the autoHeightRow modifications you suggested but thsi did not help either. I am using JDeveloper 11.1.1.6.
    Is this possible with an ADF Table? If it is, is the autoHeight property the only one that I am setting incorrectly? If not, is there another component I can use to get the desired functionality? My users are very strict about this requirement and will not accept the application without this.
    Thanks,

  • Populating a report column(Popup lov) based on the other column.

    I have a report where a column that is a Popup Lov(Query based LOV) needs to be populate based on another column in the same report.
    For example, if the column1 has query based lov select statment "select a,b,c from tab where d= *<<col2>>* ".
    I would like to have a sql query based on the values of second report column. Any ideas are appreciated.
    Regards,
    madhu

    You can do that only if you use apex_item. See this example as a reference:
    http://apex.oracle.com/pls/otn/f?p=31517:176
    In this example the second select list query depends on the first select list column value.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • Create an Answers Prompt not based on an Answers Column

    Hello,
    I want to create an answers prompt that is not based on a column in my request and i want to use that prompt to do calculations in my request.
    For example, i want to create an 'As of date' parameter where the user would fill a specific date (for example 1-Mar-09) and based on that date the report would show the total earned revenue up to that date (total revenue earned till March 2009).
    Does anyone know or can point me to a link on how to do that?
    Thanks,
    Patrick

    Sorry my last message was not fully submitted, here it is:
    You are right in this scenario, but as i've mentionned i have other cases where i dont have that column in the repository. For example, suppose i have a report where i want the user to enter a number and multiply that number by an amount (let's say this number is the conversion rate to Euro), in this case this number is not based on any column in my report and i need it to do a calculation and also i want the user to enter this value since its not fixed so the question is how is this done in OBIEE? (if doable)

  • SQL Server Reporting Services- Coloring a Cell Background Based on two different column group values

    Hello All,
    I have a matrix report with time scale on the x axis  and Resources on Y axis Showing the tasks assigned to each resource for a period of time. Here I have to color a matrix cell showing task details on tool tip with background color of the cell.
    So Please help me on this.I have a expression like this...
    In my case the color should be filled for the cell with name "Fields!task_name.Value" based on the values of "Fields!Day_Wise.Value " where we have the values for Daywise as S,M,T,W,T,F,S. So i need the background for the cell with name
    task_name as Light Grey on Friday and Saturday, But we have the same name S for sunday also, which should come in different color.
    =iif(Fields!Day_Wise.Value ="F","LightGrey",
    IIF(PREVIOUS(Fields!Day_Wise.Value) ="F","LightGrey",
    iif(Fields!task_name.Value="","White",
    iif(InStr(Fields!task_name.Value,"||")>0,"Maroon",
    iif(InStr(Fields!task_name.Value,"NULL")>0,"Sienna",
    iif(InStr(Fields!task_name.Value,"Pink")>0,"Pink",
    iif(InStr(Fields!task_name.Value,"Red")>0,"Red",
    iif(InStr(Fields!task_name.Value,"Purple")>0,"Purple",
    iif(InStr(Fields!task_name.Value,"Green")>0,"Green",
    iif(InStr(Fields!task_name.Value,"White")>0,"White",
    iif(InStr(Fields!task_name.Value,"Cyan (Teal)")>0,"Teal",
    iif(InStr(Fields!task_name.Value,"Olive")>0,"Olive",
    iif(InStr(Fields!task_name.Value,"Blue")>0,"Blue",
    iif(InStr(Fields!task_name.Value,"Light Blue (Aqua)")>0,"LightBlue",
    iif(InStr(Fields!task_name.Value,"Yellow")>0,"Yellow","Black"
    Thanks
    AJ Hameed

    Hi AJ Hameed,
    According to your description, you want to set the background color for the cells based on the values inside of cells and the values the column group. You want to set grey for cells on Friday and Saturday, set colors based on the task name on other weekdays.
    Right?
    In Reporting Services, there's no problem if we have two different data values in conditional expression, so we can set background color based on Day_Wise or task_name. One issue in this scenario is, we can't have value "S" for both Saturday and Sunday when
    working in a matrix. Otherwise the task_name will overwrite the previous task_name (for numeric values, it will do sum calculation). So we suggest you change the values for weekdays in database. The expression you have posted was correct. It only has a small
    issue: the "Light Blue(Aqua)" also contains "Blue", so when doing conditional judging, the expression will return "Blue" instead of "Light Blue". We have tested in our local environment. For viewing convenience, we used the Switch() function in our expression:
    =IIf(Fields!Day_Wise.Value="Fri" or Fields!Day_Wise.Value="Sat","LightGrey",
    Switch(
    InStr(Fields!Task_name.Value,"White")>0,"White",
    InStr(Fields!Task_name.Value,"||")>0,"Maroon",
    InStr(Fields!Task_name.Value,"Pink")>0,"Pink",
    InStr(Fields!Task_name.Value,"Red")>0,"Red",
    InStr(Fields!Task_name.Value,"Purple")>0,"Purple",
    InStr(Fields!Task_name.Value,"Green")>0,"Green",
    InStr(Fields!Task_name.Value,"Cyan(Teal)")>0,"Teal",
    Fields!Task_name.Value="","White",
    InStr(Fields!Task_name.Value,"Olive")>0,"Olive",
    InStr(Fields!Task_name.Value,"Blue")>0,"Blue",
    InStr(Fields!Task_name.Value,"Aqua")>0,"LightBlue",
    InStr(Fields!Task_name.Value,"Yellow")>0,"Yellow",
    InStr(Fields!Task_name.Value,"Orange")>0,"Orange",
    InStr(Fields!Task_name.Value,"Null")>0,"Sienna",
    true,"Black"
    The result looks like below:
    Reference:
    Matrices (Report Builder and SSRS)
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • Level Based Measure and a column based on that

    Hello All,
    I need suggestions to implement the following requirement.
    1. No of orders stored in a fact table at day level
    2. No. of orders at month level should be calculated
    3. Depending on the count, each month would be assigned to a bucket.
    0-10 orders -> B1
    11-100 orders -> B2
    > 100 orders -> B3
    What I did in RPD
    1. fact joined to time dimension
    2. created a logical column: ORDER_COUNT: count(distinct order_number) iand set the level = month
    3. created a logical column: BUCKET: using the output of above logical column and CASE statement to implement the bucket rule.
    Now, when I run a report like this:
    Year; ORDER_COUNT; BUCKET
    Returns me 12 rows. Understood because ORDER_COUNT is a month level measure
    E.g.
    2011 5 B1
    2011 5 B1
    2011 15 B2
    2011 15 B2
    2011 5 B1
    2011 5 B1
    2011 15 B2
    2011 15 B2
    2011 5 B1
    2011 5 B1
    2011 15 B2
    2011 15 B2
    But as soon as I pull the BUCKET column as column heading in pivot table, it returns me only the 1st month row and changes the "BUCKET" value to B3.
    Looks like, it recalculates the bucket and sums up all 12 months orders and then applies the bucket rule.
    Like this -
    B3
    2011 5
    My expectation was something like this
    B1 B2 B3
    2011 30 90 0
    where 30 is the sum of the order_counts of all B1 months, <m>
    Ques:
    1. Is there a way I can avoid the recalculation of bucket information when the granularity/dimensionality changes in the report
    2. I read in the below link that if the grain of the report > grain of the level-based-measure then the output of the report is "not-deterministic"
    Am I hitting that scenario?
    [http://gerardnico.com/wiki/dat/obiee/measure_level_based]
    Any suggestion would be highly appreciated.
    I am using 11.1.1.6.2 version.
    Thanks & Regards
    Monika

    Hi ,
    If I understand your requirement  correctly , then you need currency Conversion.
    you can refer this links.
    http://consultingblogs.emc.com/christianwade/archive/2006/08/24/Currency-Conversion-in-Analysis-Services-2005.aspx
    http://www.ssas-info.com/analysis-services-faq/27-mdx/244-how-change-currency-symbol-based-on-selected-currency-dimension-member
    http://social.technet.microsoft.com/wiki/contents/articles/18672.currency-conversion-in-ssas-2012-multidimensional-tabular.aspx
    May I know , You Require all this using MDX and SSRS Parameter ?
    Thanks

  • Restricting user access based on a site column value in a document library.

     
    We have a business requirement to show the contents of a document library based on a value (or values) in the site column (or multiple columns). For example, my document library has a custom site column called confidentiality. This
    will have values like restricted, internal and public. Now, based on the AD Group the user belongs to, I should be able to control the access to Restricted or Restricted and Internal files from the document library. We are using SharePoint Online 2010.
    Please suggest the best way to achieve this requirement?

    SharePoint's security model doesn't allow you to specify security based on metadata. You could however create a Sandboxed Solution containing a Feature that registers a custom event receiver on the Document Library. The logic inside this
    Event Receiver would fire after editing item properties (ItemUpdated) to apply item-level permissions based on the rules you need.
    Make sure to read the article below to determine if fine-grained permissions are suitable in your case:
    http://technet.microsoft.com/en-us/library/gg128955.aspx

  • Advaced compression in oracle 11g

    Hi,
    We are migrating databases from oracel 10g to 11g and we are using advance compression, i have few question please help me to understand
    1. if i enable compression on tables is index also get compressed if not how i can enable compression on indexes
    2.For table compression i will take the DDL of tables from oracle 10g databases and i create the tables in oracle 11g with COMPRESS FOR ALL OPERATIONS is this the right approach
    Appreciated the inputs
    thanks

    Hi,
    I checked for one of the table ALTER TABLE MOVE COMPRESS FOR ALL OPERATIONS after upgrading to 11g from 10g and rebuild the index
    SQL> select index_name,COMPRESSION,STATUS from dba_indexes where table_name='POSITION_CUBE';
    INDEX_NAME                     COMPRESS STATUS
    TEST                           DISABLED VALIDstill compress column in dba_indexes show disabled
    so i need to compress index also , how i can achive this
    Thanks

  • Function Based Index on Date Column

    Hi All,
    I need to execute a query like this :
    SELECT * FROM ORDERS WHERE APPROVE_DATE IS NULL
    I read anywhere that this will cause unnecessary FTS so that I should create function based index.
    I have tried one below , but not sure that this is correct approach :
    CREATE INDEX idx_1
    ON ORDERS (NVL(APPROVE_DATE, '01-JAN-1900'));
    SELECT * FROM ORDERS WHERE NVL(APPROVE_DATE, '01-JAN-1900') = '01-JAN-1900'
    Is this a correct approach ?
    Thank you,
    xtanto

    A SQL_TRACE output will explain clearly what Justin has stated.
    I have created a table T based on all_objects.
    SQL> desc t
    Name                                      Null?    Type
    OWNER                                     NOT NULL VARCHAR2(30)
    OBJECT_NAME                               NOT NULL VARCHAR2(30)
    SUBOBJECT_NAME                                     VARCHAR2(30)
    OBJECT_ID                                 NOT NULL NUMBER
    DATA_OBJECT_ID                                     NUMBER
    OBJECT_TYPE                                        VARCHAR2(19)
    CREATED                                            DATE
    LAST_DDL_TIME                             NOT NULL DATE
    TIMESTAMP                                          VARCHAR2(19)
    STATUS                                             VARCHAR2(7)
    TEMPORARY                                          VARCHAR2(1)
    GENERATED                                          VARCHAR2(1)
    SECONDARY                                          VARCHAR2(1)
    CASE I_
    SQL> select count(1) from t
      2  /
      COUNT(1)
        934320
    SQL> select count(1) from t where created is null
      2  /
      COUNT(1)
          2376The number of null values in CREATED column is proportionately very small.
    Now i execute the query without function based index.
    select *
      from t
    where created is null
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.09          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch      160      0.04       0.10          0      12662          0        2376
    total      162      0.04       0.19          0      12662          0        2376
    Rows     Execution Plan
          0  SELECT STATEMENT   GOAL: ALL_ROWS
       2376   TABLE ACCESS   GOAL: ANALYZED (FULL) OF 'T' (TABLE)And here is the query that uses the function based index
    select *
      from t
    where nvl(created,to_date('01-01-1900','DD-MM-YYYY')) = to_date('01-01-1900','DD-MM-YYYY')
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.01       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch      160      0.01       0.01          0        698          0        2376
    total      162      0.03       0.01          0        698          0        2376
    Rows     Execution Plan
          0  SELECT STATEMENT   GOAL: ALL_ROWS
       2376   TABLE ACCESS   GOAL: ANALYZED (BY INDEX ROWID) OF 'T' (TABLE)
       2376    INDEX   GOAL: ANALYZED (RANGE SCAN) OF 'T_FN_IDX' (INDEX)Its very obvious from the above output that the Function Based Index as increased the performance.
    CASE II_
    SQL> select count(1) from t
      2  /
      COUNT(1)
        934320
    SQL> select count(1) from t where created is null
      2  /
      COUNT(1)
        202168Now the null values in the CREATED column is proportionately large than the first test case.
    Now lets see without using the function based index
    select *
      from t
    where created is null
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch    13479      0.46       0.71          2      25832          0      202168
    total    13481      0.46       0.71          2      25832          0      202168
    Rows     Execution Plan
          0  SELECT STATEMENT   GOAL: ALL_ROWS
    202168   TABLE ACCESS   GOAL: ANALYZED (FULL) OF 'T' (TABLE)Now iam trying to use the function based index
    select *
      from t
    where nvl(created,to_date('01-01-1900','DD-MM-YYYY')) = to_date('01-01-1900','DD-MM-YYYY')
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch    13479      0.54       0.84          0      33826          0      202168
    total    13481      0.54       0.84          0      33826          0      202168
    Rows     Execution Plan
          0  SELECT STATEMENT   GOAL: ALL_ROWS
    202168   TABLE ACCESS   GOAL: ANALYZED (FULL) OF 'T' (TABLE)Its obvious from the result that oracle has decided to go for a FULL TABLE SCAN even when an index was available.
    So just having a function based index is not going to increase the query performance. There are lot of other factors to be considered as stated above.
    Thanks,
    Karthick.

Maybe you are looking for

  • Batch Merging PDF files.

    Okay here is the deal. We have two folders. Both folders have different PDF files that have the exact same name. So there is a /billing/00001.pdf and /activity/00001.pdf. We want to merge those two PDFs together through a batch process that will take

  • Idoc Bundling

    Hi, I'm working on a scenario for File to Idoc. Here, I need to send a separate Idoc to SAP for each Item segment. I have used the Idoc bundling technique here..But still its not working. XI still processing only one Idoc with all the Items in it. Di

  • Error when install clusterware

    Dear gurus, i try to install RAC server using nfs server. i'm using 3 servers, 2 nodes and 1 nfs. OS using RHEL 4.5. and Oracle Server 10.2.0.1 patch set 10.2.0.3. i gave the two nodes names deployment and deployment2. for nfs i gave it name nfs. i c

  • What does XMLType.isFragment () throw SQLException with no details?

    package com.test.db.xml; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import oracle.jdbc.OracleResultSet; import oracle.xdb.XMLType; import oracle.xml.s

  • Problems with metalink patches

    Hi I´m Havig problems finding the patches for my Oracle DB version(10.2.0.1),OS:Windows 2003 Server, I need to certify these server and migrate from version 10.2.0.1 to the most recent version Iinvestigated that the patchset name is p4547817_10202_WI