Parks vector transform

Dear all

Can someone guide me how I can apply vector parks Transform and WAVELET TRANSFORM in LabVIEW. I have to draw graphics IQ using the approach of vector of parks. My signal is real-time I collect by DAQ card. I'm using LabVIEW 8.2

Kind regards

Muhammad Irfan

Dear Mohammed,

I took a peek at your code, and here is my interpretation of what you want to do.  You are to acquire the data of your DAQ hardware inside a while loop you want to run until you press the stop button.  Once you have all of your data you want to apply the transform vector of parks (TPV) and a transformation by wavelets.

I could find a sub - vi that performs a Discrete Wavelet transform that I put inside a structure case function tab is selected.  However this sub - vi comes with the Toolkit LabVIEW 2010 Advanced Signal Processing, that you may not.  In this case, I recommend that you use a mathscript node, if you don't think that an equivalent function in a text according to the programming language.  Applies similarly to SWAP from a sub - vi comes with the Module OR SoftMotion which I don't think you have to be.

I hope this has been of use

Concerning

Tags: NI Software

Similar Questions

  • Rasterize a vector transformed without pixelation

    How does one rasterize a vector transformed capture it is new dimensions without pixelation?


    Challenge : To render a bitmap to a vector display transformed without pixelation object. Specifically, after a mx.controls.Text turns, a snapshot of the bitmap is required to take the new object whose dimensions.  I would like to point out that the reason why I need to get a snapshot of the bitmap image to for formatting to the text.


    Problem: However, so results in pixelation or the original dimensions of the transformed text. It seems that flash.display.BitmapData::draw cannot get the new transformed view.


    Example of : http://sources.novelastudios.com/Flash/matrix_adustments/MatriciesAndDimensions.html#
    Creating the complete application is triggered a snapshot is made. Change the width of the matrix (transform.matrix.a), and then perform a new made a snapshot / bitmap. Notice that it retains the original, unprocessed values. Therefore, and in view of the instant highlights, it is when the instant/bitmap capture is resized it becomes pixelated. Version of the example now is 1.1.0.0

    Also at http://flashmoment.blogspot.com/2009/11/rasterize-transformed-vector-without.html

    You may have to wrap the object to scale in a relative and take a snapshot of the parent company.

    Alex Harui

    Flex SDK Developer

    Adobe Systems Inc..

    Blog: http://blogs.adobe.com/aharui

  • How to improve the search function on a VerticalFieldManager that contains custom managers

    I have a screen with a VerticalFieldManager for a list of custom managers holding.

    The screen also contains an EditField that behaves like a search field, when the user enters the text, my app looping through an array of custom managers and compares the text entered with the text of all managers in the table.

    If the text of a Manager matches the input string, I add this handler to the VerticalFieldManager.

    Here are the relevant parts of my code:

    EditField _editField.
    TempBeanPlaces [] _placesList;
    VerticalFieldManager _vfmCellPlaces;

    ....

    This is the constructor of TemBeanPlaces:

    public TempBeanPlaces (String pPlaceName, CellPlaceManager pCellPlaceManager) {}
    placeName = pPlaceName;
    cellPlaceManager = pCellPlaceManager;
    }
    ...

    And this code handles the research:

    _editField.setChangeListener (new FieldChangeListener() {}
    ' Public Sub fieldChanged (field field, int context) {}
    String text = _editField.getText () .toLowerCase ();
    _vfmCellPlaces.DeleteAll ();
    for (int i = 0; i)< _placeslist.length;="" i++)="">
    TempBeanPlaces tempBeanPlaces = _placesList [i];
    If (tempBeanPlaces.getPlaceName () .toLowerCase (). IndexOf (Text)! = -1) {}
    _vfmCellPlaces.Add (tempBeanPlaces.getCellPlaceManager ());
    }
    }
    updateLayout();
    }
    });

    This works well when the _placesList table is not too big (length of 50, for example), otherwise the application becomes too slow.

    How can I optimize my code for large quantities of custom managers? For example, in the case, the table contains 600 elements.

    I really need to improve this feature. I just read on the ListField in BlackBerry, but since I have this code, maybe I need to rewrite all with ListFields.

    Thanks in advance!

    The biggest problem with update fields as it is time to layout, fields that are added.  If you add such a moment, then each addition will cause a layout.  Instead, you use addAll to add an array of items, or you can also add all of your items to a single Manager, and then add the Manager.  Then the layout occurs only once.

    In your code, the option would be to add managers selected to a vector, transform the vector into an array, then use addAll.

    You don't need the updateLayout().

    That said, more you add them fields, more processing will be available anyway, then perhaps you are trying to add more elements than even this optimization will execute quickly.  If this optimization does not work enough, then you will need to look in a different way, say 'paging' results, then the display doesn't show that the top 25 and the user can 'add more '.  This 'Exchange' is a good approach in my experience, because users will rarely scroll 25, when they can make another research that could give them better results.

    Finally, and to be on par with the comment of Simon, ListField is an extremely effective area because it is a unique field, so layout is easy, and he's not trying to paint lines until they are actually displayed on the screen.  So in your case, you have three options:

    (1) addAll

    (2) paging

    (3) ListField

    Let us know how you go.

  • VECTOR_TRANSFORM and ORACLE 12 c InMemory

    Patch level: "game of hotfixes in the OCW - updated: 12.1.0.2.4 (20831113).

    Like many people I guess, I just upgraded an existing DWH, I set some 12 c in memory settings and expect significant performance improvements.

    It did not.

    So I decided to build a DWH sample with a time and the product dimension and a partitioned fact table that is so great that it would not completely fit in the inmemory part, to do some tests in a much simpler environment.

    In my example, the dimensions are first loaded in memory in priority. The fact load depends on the use of partitions so that the 'real' data will not fit.

    Questions I wanted to answer were:
    1. the inmemory query will be much faster than the no version inmemory. (Answer: it depends.) It is often not!)
    2 done ORACLE Exchange will introduce INMEMORY partitions when there is no more space and
    other data partitions (for example in the form of a FIFO?), we wonder. (Answer: no, this is documented)
    3. will I see in v$ im_segments I have no partitions of all the senses in memory
    (No you need to associate DBA_SEGMENTS to see the partitions in memory.)

    Now, I tried to find out why I have no more success.


    And while I played and I read, I found VECTOR_TRANSFORM
    https://support.Oracle.com/epmos/faces/DocumentDisplay?_afrLoop=287258785184897 & ID = 1935305.1 & _afrWindowMode = 0 & _adf. CTRL-State = 15o1gcrocb_55
    WHO gave a real helping hand to my request! (when the optimizer takes)

    I set myself (to have always to all my normal queries of DWH)
    change all of the "_always_vector_transformation" system = true;
    change the whole system "_optimizer_vector_cost_adj" = 20;

    But it does not work for all queries.

    So I decided to share my findings with you and ask if anyone knows why ORACLE here sometimes decide not to use VECTOR_TRANSFORM.

    I have found too much examples of work on the WEB that really show the difference in performance of INMEMORY. I did it here hope for other examples of work / tips etc.

    Here in short my tests and you see that I am MUCH faster when both functions are used.


    Without VECTOR_TRANSFORM and INMEMORY
    Elapsed time: 00:00:38.56
    A query that takes VECTOR_TRANSFORM and INMEMORY is:
    Elapsed time: 00:00:00.75 < = factor 50 and VERY impressive!
    Without VECTOR_TRANSFORM with INMEMORY
    Elapsed time: 00:00:09.32
    Even if the fact is not in memory query takes:
    Elapsed time: 00:00:02.79

    Then, as my system memory is limited, I would put all the dimensions of INMEMORY and
    hope that the VECTOR_TRANSFORM is ALWAYS used

    But even I put '_always_vector_transformation' and give a clue VECTOR_TRANSFORM.
    VECTOR_TRANSFORM is sometimes not used.

    I put the events below to get an answer and checked the trace:
    ALTER session set events trace [SQL_Transform.*] ' disk 'high '.
    ALTER session set events trace [SQL_Costing.*] ' disk 'high '.

    but that didn't help either. (too much information ;-)

    My settings (SOLARIS 10, Intel x 64, 64 CPU, the memory of the 1 TB server)

    VALUE OF TYPE NAME
    ------------------------------------ ----------- ------------------------------
    inmemory_force string by DEFAULT
    inmemory_max_populate_servers integer 12
    inmemory_query string ENABLE
    inmemory_size big integer 1 G
    inmemory_trickle_repopulate_servers_ integer 50
    percent
    optimizer_inmemory_aware Boolean TRUE
    SGA_MAX_SIZE large whole 20G
    Whole large SGA_TARGET 20G

    _always_vector_transformation Boolean TRUE


    The DWH, which you can build yourself with the following size

    (The fact table has 4000 'days' / data using 32 GB partitions)

    NOM_SEGMENT MO COUNT (*)
    -------------------------- ----------
    32000 4000 SALES_FACT
    0 1 DAY_DIMENSION
    2 1 PRODUCT_DIMENSION

    (If you don't not have 32 GB to use, it is easy to make the smaller example.)

    PKs and constraints have been fixed.
    Statistics with histograms on indexed lines, or on day_dimension, all areas are taken to give the optimizer everthing he might need.

    Thank you for thinking about it.
    Andy

    Queries:
    --------

    -Q1:
    ------
    Select
    min (d.day_id), Max (d.day_id),
    d.Year, p.product_type, sum (f.sale_price) sale_price, count (*)
    of day_dimension d
    inner join sales_fact f
    on d.day_id = f.day_id
    inner join product_dimension p
    on p.product_id = f.product_id
    where d.year = 2012
    and p.product_type = 'TABLE'
    D.year group, p.product_type
    d.year order, p.product_type;
    -Elapsed: 00:00:00.75

    -Q2: what 'min' is missing in the VECTOR_TRANSFORM SQL does NOT.
    ------
    Select / * + VECTOR_TRANSFORM * /.
    -min (d.day_id), max (d.day_id),
    d.Year, p.product_type, sum (f.sale_price) sale_price, count (*)
    of day_dimension d
    inner join sales_fact f
    on d.day_id = f.day_id
    inner join product_dimension p
    on p.product_id = f.product_id
    where d.year = 2012
    and p.product_type = 'TABLE'
    D.year group, p.product_type
    d.year order, p.product_type;
    -Elapsed: 00:00:09.32

    -Q3: what 'min' is missing in the VECTOR_TRANSFORM SQL is NOT without INMOMRY, it is slow.
    ------
    Select / * + VECTOR_TRANSFORM NO_INMEMORY * /.
    -min (d.day_id), max (d.day_id),
    d.Year, p.product_type, sum (f.sale_price) sale_price, count (*)
    of day_dimension d
    inner join sales_fact f
    on d.day_id = f.day_id
    inner join product_dimension p
    on p.product_id = f.product_id
    where d.year = 2012
    and p.product_type = 'TABLE'
    D.year group, p.product_type
    d.year order, p.product_type;
    -Elapsed: 00:00:38.78


    -Q4:
    ------
    Select / * + VECTOR_TRANSFORM NO_INMEMORY * /.
    min (d.day_id), Max (d.day_id),
    d.Year, p.product_type, sum (f.sale_price) sale_price, count (*)
    of day_dimension d
    inner join sales_fact f
    on d.day_id = f.day_id
    inner join product_dimension p
    on p.product_id = f.product_id
    where d.year = 2012
    and p.product_type = 'TABLE'
    D.year group, p.product_type
    d.year order, p.product_type;
    -Elapsed: 00:00:01.03

    -Q5:
    -----
    Select / * + NO_VECTOR_TRANSFORM NO_INMEMORY * /.
    min (d.day_id), Max (d.day_id),
    d.Year, p.product_type, sum (f.sale_price) sale_price, count (*)
    of day_dimension d
    inner join sales_fact f
    on d.day_id = f.day_id
    inner join product_dimension p
    on p.product_id = f.product_id
    where d.year = 2012
    and p.product_type = 'TABLE'
    D.year group, p.product_type
    d.year order, p.product_type;
    -Elapsed: 00:00:38.56

    -Q6: (done partitoned for 2014 not in memory)
    ------
    Select
    min (d.day_id), Max (d.day_id),
    d.Year, p.product_type, sum (f.sale_price) sale_price, count (*)
    of day_dimension d
    inner join sales_fact f
    on d.day_id = f.day_id
    inner join product_dimension p
    on p.product_id = f.product_id
    where d.year = 2014
    and p.product_type = 'TABLE'
    D.year group, p.product_type
    d.year order, p.product_type;
    -Elapsed: 00:00:02.70

    Q1:
    -----------------------------------------------------------------------------------------------------------------------------------
    | ID | Operation | Name                        | Lines | Bytes | Cost (% CPU). Time | Pstart. Pstop |
    -----------------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                             |   259. 20720 |   176K (57) | 00:00:28 |       |       |
    |   1.  TRANSFORMATION OF THE TEMPORARY TABLE.                             |       |       |            |          |       |       |
    |   2.   LOAD SELECT ACE | SYS_TEMP_0FD9D6928_73F9117C |       |       |            |          |       |       |
    |   3.    GROUP BY VECTOR |                             |   366.  2928.     1 (0) | 00:00:01 |       |       |
    |   4.     VECTOR KEY CREATE BUFFER | : KV0000 |       |       |            |          |       |       |
    |*  5 |      INMEMORY COMPLETE ACCESS TABLE | DAY_DIMENSION |   366.  2928.     1 (0) | 00:00:01 |       |       |
    |   6.   LOAD SELECT ACE | SYS_TEMP_0FD9D6929_73F9117C |       |       |            |          |       |       |
    |   7.    GROUP BY VECTOR |                             |     1.    12.     1 (0) | 00:00:01 |       |       |
    |   8.     HASH GROUP BY.                             |     1.    12.     1 (0) | 00:00:01 |       |       |
    |   9.      VECTOR KEY CREATE BUFFER | : KV0001 |       |       |            |          |       |       |
    | * 10 |       INMEMORY COMPLETE ACCESS TABLE | PRODUCT_DIMENSION |   888. 10656.     1 (0) | 00:00:01 |       |       |
    |  11.   GROUP SORT BY NOSORT |                             |   259. 20720 |   176K (57) | 00:00:28 |       |       |
    | * 12 |    HASH JOIN |                             |   259. 20720 |   176K (57) | 00:00:28 |       |       |
    |  13.     THE CARTESIAN MERGE JOIN.                             |   366.  7320 |     4 (0) | 00:00:01 |       |       |
    |  14.      TABLE ACCESS FULL | SYS_TEMP_0FD9D6929_73F9117C |     1.    12.     2 (0) | 00:00:01 |       |       |
    |  15.      KIND OF BUFFER.                             |   366.  2928.     2 (0) | 00:00:01 |       |       |
    |  16.       TABLE ACCESS FULL | SYS_TEMP_0FD9D6928_73F9117C |   366.  2928.     2 (0) | 00:00:01 |       |       |
    |  17.     VIEW                            | VW_VT_4FBA27B6 |   259. 15540 |   176K (57) | 00:00:28 |       |       |
    |  18.      GROUP BY VECTOR |                             |   259.  3367 |   176K (57) | 00:00:28 |       |       |
    |  19.       HASH GROUP BY.                             |   259.  3367 |   176K (57) | 00:00:28 |       |       |
    |  20.        USE OF KEY VECTORS | : KV0000 |       |       |            |          |       |       |
    |  21.         USE OF KEY VECTORS | : KV0001 |       |       |            |          |       |       |
    |  22.          RANGE OF PARTITION SUBQUERY |                             |   160 M |  1983M | 77948 (2) | 00:00:13 | KEY (SQ) | KEY (SQ) |
    | * 23.           INMEMORY COMPLETE ACCESS TABLE | SALES_FACT |   160 M |  1983M | 77948 (2) | 00:00:13 | KEY (SQ) | KEY (SQ) |
    -----------------------------------------------------------------------------------------------------------------------------------

    Q2:
    ---------------------------------------------------------------------------------------------------------------------
    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time | Pstart. Pstop |
    ---------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                   |  1308K |    41 M | 78385 (2) | 00:00:13 |       |       |
    |   1.  GROUP SORT BY NOSORT |                   |  1308K |    41 M | 78385 (2) | 00:00:13 |       |       |
    |*  2 |   HASH JOIN |                   |  1308K |    41 M | 78385 (2) | 00:00:13 |       |       |
    |   3.    JOIN FILTER PART CREATE | : BF0000 |   366.  2928.     1 (0) | 00:00:01 |       |       |
    |*  4 |     INMEMORY COMPLETE ACCESS TABLE | DAY_DIMENSION |   366.  2928.     1 (0) | 00:00:01 |       |       |
    |*  5 |    HASH JOIN |                   |    14 M |   341 M | 78349 (2) | 00:00:13 |       |       |
    |   6.     JOIN CREATE FILTER | : BF0001 |   888. 10656.     1 (0) | 00:00:01 |       |       |
    |*  7 |      INMEMORY COMPLETE ACCESS TABLE | PRODUCT_DIMENSION |   888. 10656.     1 (0) | 00:00:01 |       |       |
    |   8.     USE OF JOIN FILTER | : BF0001 |   160 M |  1983M | 77948 (2) | 00:00:13 |       |       |
    |   9.      RANGE OF PARTITION-JOIN FILTER |                   |   160 M |  1983M | 77948 (2) | 00:00:13 | : BF0000 | : BF0000 |
    | * 10 |       INMEMORY COMPLETE ACCESS TABLE | SALES_FACT |   160 M |  1983M | 77948 (2) | 00:00:13 | : BF0000 | : BF0000 |
    ---------------------------------------------------------------------------------------------------------------------

    Q3:
    --------------------------------------------------------------------------------------------------------------------
    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time | Pstart. Pstop |
    --------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                   |  1308K |    41 M | 85288 (2) | 00:00:14 |    |          |
    |   1.  GROUP SORT BY NOSORT |                   |  1308K |    41 M | 85288 (2) | 00:00:14 |    |          |
    |*  2 |   HASH JOIN |                   |  1308K |    41 M | 85288 (2) | 00:00:14 |    |          |
    |   3.    JOIN FILTER PART CREATE | : BF0000 |   366.  2928.     4 (0) | 00:00:01 |    |          |
    |*  4 |     TABLE ACCESS FULL | DAY_DIMENSION |   366.  2928.     4 (0) | 00:00:01 |    |          |
    |*  5 |    HASH JOIN |                   |    14 M |   341 M | 85248 (2) | 00:00:14 |    |          |
    |*  6 |     TABLE ACCESS FULL | PRODUCT_DIMENSION |   888. 10656.     9 (0) | 00:00:01 |    |          |
    |   7.     RANGE OF PARTITION-JOIN FILTER |                   |   160 M |  1983M | 84839 (2) | 00:00:14 | : BF0000 | : BF0000 |
    |   8.      TABLE ACCESS FULL | SALES_FACT |   160 M |  1983M | 84839 (2) | 00:00:14 | : BF0000 | : BF0000 |
    --------------------------------------------------------------------------------------------------------------------

    Q4:
    -----------------------------------------------------------------------------------------------------------------------------------
    | ID | Operation | Name                        | Lines | Bytes | Cost (% CPU). Time | Pstart. Pstop |
    -----------------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                             |   259. 20720 |   176K (57) | 00:00:28 |       |       |
    |   1.  TRANSFORMATION OF THE TEMPORARY TABLE.                             |       |       |            |          |       |       |
    |   2.   LOAD SELECT ACE | SYS_TEMP_0FD9D6936_73F9117C |       |       |            |          |       |       |
    |   3.    GROUP BY VECTOR |                             |   366.  2928.     1 (0) | 00:00:01 |       |       |
    |   4.     VECTOR KEY CREATE BUFFER | : KV0000 |       |       |            |          |       |       |
    |*  5 |      INMEMORY COMPLETE ACCESS TABLE | DAY_DIMENSION |   366.  2928.     1 (0) | 00:00:01 |       |       |
    |   6.   LOAD SELECT ACE | SYS_TEMP_0FD9D6937_73F9117C |       |       |            |          |       |       |
    |   7.    GROUP BY VECTOR |                             |     1.    12.     1 (0) | 00:00:01 |       |       |
    |   8.     HASH GROUP BY.                             |     1.    12.     1 (0) | 00:00:01 |       |       |
    |   9.      VECTOR KEY CREATE BUFFER | : KV0001 |       |       |            |          |       |       |
    | * 10 |       INMEMORY COMPLETE ACCESS TABLE | PRODUCT_DIMENSION |   888. 10656.     1 (0) | 00:00:01 |       |       |
    |  11.   GROUP SORT BY NOSORT |                             |   259. 20720 |   176K (57) | 00:00:28 |       |       |
    | * 12 |    HASH JOIN |                             |   259. 20720 |   176K (57) | 00:00:28 |       |       |
    |  13.     THE CARTESIAN MERGE JOIN.                             |   366.  7320 |     4 (0) | 00:00:01 |       |       |
    |  14.      TABLE ACCESS FULL | SYS_TEMP_0FD9D6937_73F9117C |     1.    12.     2 (0) | 00:00:01 |       |       |
    |  15.      KIND OF BUFFER.                             |   366.  2928.     2 (0) | 00:00:01 |       |       |
    |  16.       TABLE ACCESS FULL | SYS_TEMP_0FD9D6936_73F9117C |   366.  2928.     2 (0) | 00:00:01 |       |       |
    |  17.     VIEW                            | VW_VT_4FBA27B6 |   259. 15540 |   176K (57) | 00:00:28 |       |       |
    |  18.      GROUP BY VECTOR |                             |   259.  3367 |   176K (57) | 00:00:28 |       |       |
    |  19.       HASH GROUP BY.                             |   259.  3367 |   176K (57) | 00:00:28 |       |       |
    |  20.        USE OF KEY VECTORS | : KV0000 |       |       |            |          |       |       |
    |  21.         USE OF KEY VECTORS | : KV0001 |       |       |            |          |       |       |
    |  22.          RANGE OF PARTITION SUBQUERY |                             |   160 M |  1983M | 77948 (2) | 00:00:13 | KEY (SQ) | KEY (SQ) |
    | * 23.           INMEMORY COMPLETE ACCESS TABLE | SALES_FACT |   160 M |  1983M | 77948 (2) | 00:00:13 | KEY (SQ) | KEY (SQ) |
    -----------------------------------------------------------------------------------------------------------------------------------

    Q5:
    --------------------------------------------------------------------------------------------------------------------
    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time | Pstart. Pstop |
    --------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                   |  1308K |    41 M | 85288 (2) | 00:00:14 |    |          |
    |   1.  GROUP SORT BY NOSORT |                   |  1308K |    41 M | 85288 (2) | 00:00:14 |    |          |
    |*  2 |   HASH JOIN |                   |  1308K |    41 M | 85288 (2) | 00:00:14 |    |          |
    |   3.    JOIN FILTER PART CREATE | : BF0000 |   366.  2928.     4 (0) | 00:00:01 |    |          |
    |*  4 |     TABLE ACCESS FULL | DAY_DIMENSION |   366.  2928.     4 (0) | 00:00:01 |    |          |
    |*  5 |    HASH JOIN |                   |    14 M |   341 M | 85248 (2) | 00:00:14 |    |          |
    |*  6 |     TABLE ACCESS FULL | PRODUCT_DIMENSION |   888. 10656.     9 (0) | 00:00:01 |    |          |
    |   7.     RANGE OF PARTITION-JOIN FILTER |                   |   160 M |  1983M | 84839 (2) | 00:00:14 | : BF0000 | : BF0000 |
    |   8.      TABLE ACCESS FULL | SALES_FACT |   160 M |  1983M | 84839 (2) | 00:00:14 | : BF0000 | : BF0000 |
    --------------------------------------------------------------------------------------------------------------------

    Updated the DWH:


    create the table day_dimension
    as
    WITH my_days like)
    LEVEL SELECT ID, trunc (sysdate)-3900 + LEVEL my_day
    OF THE DOUBLE
    CONNECT BY LEVEL < = 4000)
    --
    Select
    ID day_id,
    my_day current_day,
    TO_NUMBER (to_char(my_day,'YYYYMM')) month_id,
    TO_NUMBER (to_char(my_day,'YYYY')) year,
    to_char(my_day,'DAY') day_name,
    to_char(my_day,'MONTH') month_name,
    TO_CHAR (my_day, ' DAY DDMONTH ',' NLS_DATE_LANGUAGE = GERMAN ') german_day,.
    TO_CHAR (my_day, ' DAY DDMONTH ',' NLS_DATE_LANGUAGE = FRENCH ') french_day,.
    -case when my_day = trunc (sysdate) then 'Y' else ' n end current_day_flag.
    cases where last_day (my_day) = my_day then 'Y' else ' n end month_end_flag.
    MONTHS_BETWEEN (LAST_DAY (my_day), LAST_DAY (sysdate)) months_back
    Of
    my_days;

    ALTER table day_dimension ADD CONSTRAINT day_pk PRIMARY KEY (day_id) USING INDEX;


    create the table product_dimension
    as
    Select product_id, product_name object_name, object_type product_type rownum,
    object_name | » -'|| object_name | » -'|| object_name | » -'|| object_name | » -'|| object_name | » -'|| object_name product_name_long
    from dba_objects where rownum < = 10000;

    ALTER table product_dimension ADD CONSTRAINT prod_pk PRIMARY KEY (product_id) USING INDEX;


    drop table sales_fact;
    create the table sales_fact
    (day_id NUMBER (15.0) NOT NULL,)
    product_id NUMBER (15.0) NOT NULL,
    sale_price number,
    filler_text VARCHAR2 (1000))
    PARTITION OF RANGE (day_id) INTERVAL (1)
    (PARTITION "PMIN" VALUES LOWER (1) SEGMENT DEFERRED CREATION)
    ;

    ALTER table sales_fact add constraint day_id_fk foreign (day_id) keys
    disable the references day_dimension (day_id);

    ALTER table sales_fact add constraint product_id_fk foreign (product_id) keys
    disable the references product_dimension (product_id);


    Insert into sales_fact (product_id, sale_price, day_id, filler_text)
    SELECT 1 day_id
    trunc (DBMS_RANDOM. VALUE * 10000) product_id,.
    Round (DBMS_RANDOM. VALUE * 1000, 2) sale_price;
    Filler_text "the PL/SQL interface for components of the Advisor is described at the end of this article"
    OF THE DOUBLE
    CONNECT BY LEVEL < = 40000;
    commit;

    Start
    because me 2.4000 loop
    Insert into sales_fact (product_id, sale_price, day_id, filler_text)
    Select I product_id, sale_price, filler_text from sales_fact where day_id = 1;
    commit;

    end loop;
    end;
    /

    -get statistics:

    Start
    DBMS_STATS. () GATHER_TABLE_STATS
    ownname = > 'DWHADM ',.
    tabname = > 'DAY_DIMENSION ',.
    method_opt = > 'for all THE COLUMNS of SIZE AUTO. "
    block_sample = > TRUE,
    Cascade = > TRUE);
    end;
    /


    Start
    I'm in (select * from all_tables where table_name in ('SALES_FACT', 'PRODUCT_DIMENSION')) loop
    DBMS_STATS. () GATHER_TABLE_STATS
    ownname = > i.owner,
    tabname = > i.table_name,
    block_sample = > TRUE,
    level = > 4,
    Cascade = > TRUE);

    end loop;
    end;
    /

    Andy,

    I built your model with a few adjustments and played a little bit.

    I did not have the dimensions in memory and I added an extra column to the product dimension, and I built only 254 partitions (so all in 2005)

    I think the optimizer ignores the vector transformation because he decides that your request is not a query group. Your entry is:

    Select

    -min (d.day_id), max (d.day_id),

    d.Year, p.product_type, sum (f.sale_price) sale_price, count (*)

    of day_dimension d

    sales_fact f d.day_id = f.day_id inner join

    inner join product_dimension p on p.product_id = f.product_id

    where d.year = 2012 and p.product_type = 'TABLE '.

    D.year group, p.product_type

    d.year order, p.product_type

    The optimizer rewrites that:

    Select

    2012, 'TABLE', sum (f.sale_price) sale_price, count (*)

    of day_dimension d

    sales_fact f d.day_id = f.day_id inner join

    inner join product_dimension p on p.product_id = f.product_id

    where d.year = 2012 and p.product_type = 'TABLE '.

    2012 group

    It seems to me that if he had to eliminate "Group by constant", and it is strange that she keeps the first two columns (switch provided that the order in the group by and rewriting will be "Group by 'TABLE'")

    I think that, even if, to some Oracle processes a query point block this exliminates that "group by" and disables VT accordingly.

    My clue, incidentally was wrong, I realized it to @sel$ 1 when it should have been directed to joining 3 tables merged.

    The subquery indicator (even if she had worn on the right query block) not would not have worked because it seems that creating a filter of Bloom for elimination of partition overrides subquery filtering - at least in 12.1.0.2 - and if the day_dimension is used as a table of accumulation, it is automatically able to generate a Bloom filter , and the no_px_join_filter() applies only for the join filter, not for the elimination of partition filter.

    One thing I found with this request, however, is that if I disabled it partition pruning by filter Bloom (OPT_PARAM ('_bloom_pruning_enabled' 'false')) then, on the my data set, he ran a little faster. I would be interested in what he does on your game. (With statistics_level a new typical and no index of gather_plan_statistics).  Possibly the most robust test would be the next set of indicators - to change the 'swap' to 'no_swap '.

    /*+

    attack (@sel$ 9e43cb6e p@sel$2 f@sel$1 d@sel$1)

    px_join_filter (@sel$ 9e43cb6e f@sel$1)

    subquery_pruning (@sel$ 9e43cb6e f@sel$1 partition)

    USE_HASH (@sel$ 9e43cb6e f@sel$1)

    USE_HASH (@sel$ 9e43cb6e d@sel$1)

    swap_join_inputs (@sel$ 9e43cb6e d@sel$1)

    */

    Here are the plans of running two I - the first was traded, the second is not exchanged:

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

    | ID | Operation | Name | Begins | E - lines. Cost (% CPU). Pstart. Pstop | A - lines.  A - time | Pads | Bed |  OMem |  1Mem | Used Mem.

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

    |  0 | SELECT STATEMENT |                  |      1.        | 15086 (100) |      |      |      1. 00:00:39.24 |  50527 |  48906 |      |      |          |

    |  1.  GROUP SORT BY NOSORT |                  |      1.    639K | 15086 (1) |      |      |      1. 00:00:39.24 |  50527 |  48906 |      |      |          |

    |*  2 |  HASH JOIN |                  |      1.    639K | 15086 (1) |      |      |  1221K | 00:00:36.49 |  50527 |  48906 |  2440K |  2440K | 1472K (0) |

    |  3.    JOIN FILTER PART CREATE | : BF0000 |      1.    333.    18 (0) |      |      |    333. 00:00:00.01 |      57.      0 |      |      |          |

    |*  4 |    TABLE ACCESS FULL | DAY_DIMENSION |      1.    333.    18 (0) |      |      |    333. 00:00:00.01 |      57.      0 |      |      |          |

    |*  5 |    HASH JOIN |                  |      1.    641K | 15066 (1) |      |      |  1221K | 00:00:26.16 |  50470 |  48906 |  2440K |  2440K | 1184K (0) |

    |  6.    JOIN CREATE FILTER | : BF0001 |      1.    625.    61 (0) |      |      |  1210 | 00:00:00.01 |    214.      0 |      |      |          |

    |*  7 |      TABLE ACCESS FULL | PRODUCT_DIMENSION |      1.    625.    61 (0) |      |      |  1210 | 00:00:00.01 |    214.      0 |      |      |          |

    |  8.    USE OF JOIN FILTER | : BF0001 |      1.    10 M | 14981 (1) |      |      |  1389K | 00:00:14.92 |  50256 |  48906 |      |      |          |

    |  9.      RANGE OF PARTITION-JOIN FILTER |                  |      1.    10 M | 14981 (1) | : BF0000 | : BF0000 |  1389K | 00:00:09.30 |  50256 |  48906 |      |      |          |

    | * 10 |      INMEMORY COMPLETE ACCESS TABLE | SALES_FACT |    254.    10 M | 14981 (1) | : BF0000 | : BF0000 |  1389K | 00:00:03.72 |  50256 |  48906 |      |      |          |

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

    Information of predicates (identified by the operation identity card):

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

    2 - access("D".") "DAY_ID" ="F" DAY_ID')

    4 - filter("D".") AN "= 2005)

    5 - access("P".") ' PRODUCT_ID ' =' F '" PRODUCT_ID')

    7 - filter("P".") PRODUCT_TYPE "=" TABLE")

    10 - inmemory (SYS_OP_BLOOM_FILTER (: BF0000, 'F'.)) ((' ' PRODUCT_ID '))

    filter (SYS_OP_BLOOM_FILTER (: BF0000, 'F'.)) ((' ' PRODUCT_ID '))

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

    | ID | Operation | Name | Begins | E - lines. Cost (% CPU). Pstart. Pstop | A - lines.  A - time | Pads | Bed |  OMem |  1Mem | Used Mem.

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

    |   0 | SELECT STATEMENT |                   |      1.        | 16180 (100) |      |      |      1. 00:00:07.47 |  50584 |  48956 |      |      |          |

    |   1.  GROUP SORT BY NOSORT |                   |      1.    639K | 16180 (1) |      |      |      1. 00:00:07.47 |  50584 |  48956 |      |      |          |

    |*  2 |   HASH JOIN |                   |      1.    639K | 16180 (1) |      |      |  1221K | 00:00:04.88 |  50584 |  48956 |    88.  9683K |  78 M (0).

    |*  3 |    HASH JOIN |                   |      1.    641K | 15066 (1) |      |      |  1221K | 00:00:01.88 |  50527 |  48956 |  2440K |  2440K | 1134K (0) |

    |   4.     JOIN CREATE FILTER | : BF0000 |      1.    625.    61 (0) |      |      |  1210 | 00:00:00.01 |    214.      0 |      |      |          |

    |*  5 |      TABLE ACCESS FULL | PRODUCT_DIMENSION |      1.    625.    61 (0) |      |      |  1210 | 00:00:00.01 |    214.      0 |      |      |          |

    |   6.     USE OF JOIN FILTER | : BF0000 |      1.    10 M | 14981 (1) |      |      |  1389K | 00:00:01.25 |  50313 |  48956 |      |      |          |

    |   7.      RANGE OF PARTITION SUBQUERY |                   |      1.    10 M | 14981 (1) | KEY (SQ) | KEY (SQ) |  1389K | 00:00:01.03 |  50313 |  48956 |      |      |          |

    |*  8 |       INMEMORY COMPLETE ACCESS TABLE | SALES_FACT |    254.    10 M | 14981 (1) | KEY (SQ) | KEY (SQ) |  1389K | 00:00:00.78 |  50256 |  48956 |      |      |          |

    |*  9 |    TABLE ACCESS FULL | DAY_DIMENSION |      1.    333.    18 (0) |      |      |    333. 00:00:00.01 |      57.      0 |      |      |          |

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

    Information of predicates (identified by the operation identity card):

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

    2 - access("D".") "DAY_ID" ="F" DAY_ID')

    3 - access("P".") ' PRODUCT_ID ' =' F '" PRODUCT_ID')

    5 - filter("P".") PRODUCT_TYPE "=" TABLE")

    8 - inmemory (SYS_OP_BLOOM_FILTER (: BF0000, 'F'.)) ((' ' PRODUCT_ID '))

    filter (SYS_OP_BLOOM_FILTER (: BF0000, 'F'.)) ((' ' PRODUCT_ID '))

    9 - filter("D".") AN "= 2005)

    The massive difference in timing is almost entirely due to statistics_level = all.

    By operating without this parameter times were 1.58 and 1.23 seconds.

    I think the reason why there is not a lot of information on the Internet, it is that he is still relatively new and there are not many people who use it, and those who use it are so happy to improve they get that they are not checking to see if they get all the improvement that could be expected. and the people who tend to look at these things had much else to look at again. I spent a bit of time looking at HOW it works, but I didn't spend time looking for cases where the strategy is rejected, or the methods of costing.

    Concerning

    Jonathan Lewis

  • Need help on how to create the transformation of the Park by using the MathScript node?

    Hello

    I want to generate a transformation of the Park by using the MathScript node. But there is an error message which confused me. Please can someone help me to have a look of my program? Thank you!

    The error message is "error-90011 occurred in error in the function mail to line 1.  The sizes of the input matrices are incompatible.
    Check that the matrices have the same size or one is a scalar.

    Possible reasons:

    LabVIEW: Sizes of the input matrices are incompatible.  Check that the matrices have the same size or that one is a scalar".

    Hello

    The problem is that all of your entries to the MathScript node are vectors.  All entries of the vector to the MathScript node becomes vector lines.  A multiplication of two vectors lines generates a size mismatch error.  If you really want a scalar of this multiplication of output (by calculating the dot product of vectors), then you have to bring your 'a', 'b' and 'c' vectors or your vector of 'x '.  If you want everything just multiply your elementwise vectors and produce an output vector, you must use the elementwise multiplication operator '. *' (time point).  Use this operator between your 'a', 'b' and 'c' vectors and your calculation of fishing.  For example, on your first line,
    d = (2/3)*a.*(sin(x))+(2/3)*b.*(sin(x-(2*pi/3)))+(2/3)*c.*(sin(x+(2*pi/3)));

    Don't forget to also change your output to a 1 d of DBL array variables.  You can do this by right-clicking on the output variable and selecting "Choose Data Type."

    Grant M.
    Staff software engineer | LabVIEW Math & Signal Processing | National Instruments

  • Preferences option "vector Snap tools and transforms to the pixel grid" on the options bar

    Hello! Is it possible to put the preferences option ' Snap vector tools and transforms to pixel grid "option vector toolbar.

    I draw web-graphics and icons. I often use vector layers for scalable graphics. So, sometimes I need snaps to the pixel grid is turned on, sometimes I need it's off?

    Whenever I press Ctrl + K to open the dialog box Preferences checkbox enabled. It will be great to have shortened keyboard or button in the options bar to LENGTH fast.

    Is an idea?

    P.S. sorry for my English ^)

    You can record an Action and assign a keyboard shortcut.

    (Another option would be a Script that you could use in a panel of html5, but maybe it's not worth it).

  • Vector glitch of anchor points with the transformation of the cs6 illustrator objects

    Vector anchor points glitch during the transformation of objects,

    It is if I create a square and turn it, let's say I have it increase by 200%, it creates additional anchor points in the square corners and also creates weird crenellated edges, when I hover over the square with the slider to show the edges, the line from the edge which shows blue is shifted in at the edge of the actual object reference (see attached img the orange object displays the quirky plan and the black object is supposed to be a) round square edged, but after that I turned (Shear 10 degrees) it apeared of curves in stairs)

    I already tried to launch updates and restart, but the issue continues to display.

    Thanks in advance for your help.

    Rob.

    SHIFTED OUTLINE.pngJAGGED EDGES.png

    Looks like it's related to 'snap to grid of pixels.

  • Toggle on / off ' Snap vector tools and transforms to pixel grid "?

    I use the Adobe 4 for Photoshop CC configurator and wonder if it is possible to add a button to toggle the "'Snap vector tools and transformations of the pixel grid" option (located in the preferences > menu opt. Interface) without opening the menu of preference (automatic or manual). "

    If there is a way of doing things, could someone explain me how please?

    Thank you very much

    I got the answer of @davidderaedt and @sbaril on Twitter.

    You can assign this JS code on a button in the Panel (the Boolean value is on the first line):

    active = true, false = off

    var enabled = false

    var idsetd = charIDToTypeID ("setd");

    var desc5 = new ActionDescriptor();

    var idnull = charIDToTypeID ("null");

    ref2 var = new ActionReference();

    var idPrpr = charIDToTypeID ("Rprp");

    var idGnrP = charIDToTypeID ("GnrP");

    ref2.putProperty (idPrpr, idGnrP);

    var idcapp = charIDToTypeID ('capp');

    var idOrdn = charIDToTypeID ('Ordn');

    var idTrgt = charIDToTypeID ("Trgt");

    ref2.putEnumerated (idcapp, idOrdn, idTrgt);

    Desc5.putReference (idnull, ref2);

    idT var = charIDToTypeID ("T");

    var desc6 = new ActionDescriptor();

    var idtransformsSnapToPixels = stringIDToTypeID ("transformsSnapToPixels");

    desc6.putBoolean (idtransformsSnapToPixels, on);

    var idGnrP = charIDToTypeID ("GnrP");

    Desc5.putObject (idT, idGnrP, desc6);

    executeAction (idsetd, desc5, DialogModes.NO);

  • Cannot deform stuck HAVE dynamic object using the free transform vector in PS CS6

    Hello

    I stuck a vector object in PS CS6 (13.0.1 x 32) today directly from Illustrator CS6 (16.0.1 x 32) and select 'Paste as smart object' (Windows XP Pro SP3).

    I then tried to distort the object glued using the free transform tool by dragging one of the handles to angle with hold CTRL (Windows).

    General warps\distorts the object, but instead, it launched an operation to bias .

    If I paste as Pixels or shape layer and then apply free Transform, < Ctrl + corner handle slide > performs a warp\distort operation.

    Also, if I have rasterized glued it opposed and then convert them to a smart object, I can warp\distort.

    Is it not possible to paste a vector Illustrator in as a smart object, then warp\distort directly using this technique?

    Thanks for your help.

    Richard

    Your right because on a stuck vehicle a smart cannot deform, false or perform perspective transformations.

    One solution would be to right click on the vector smart object layer in the layers panel and

    Choose Convert to smart object.

    It depends on what is your object, you would probably better quality of a pasted shape or path, but then you will not be able to open the object

    back in illustrator from photoshop.

  • Using Illustrator - transform a vector picture

    I have a vector of a magazine cover with a corner turned up.  I would like to add coverage for vector magazine of an image that I saved and add another image in the area where the page is turned by revealing inside "of the magazine.

    Any help or advice would be greatly appreciated.

    Thanks, Claudia

    You might find you need 3 images... or, you could just do a linear gradient at #2...

    In the diagram following '+' is equivalent to a clipping mask.

  • In CC 2015 cannot find action ' vector tools Snap and transforms to the pixel grid.

    In cc 2014 was available under General Preferences. Now can not find it in there and the "View > snap to doesn't work the same way.»

    Does anyone know how to fix this? I work with icons all the time and it's like cutting off my hand!

    Photoshop > Preferences > tools

  • Transform the bitmap at run time (vectors) lines?

    After you draw a few lines and moveTo, lineTo, how to convert their bitmap so that they do not lag, if there are many. Thank you.

    as a movieclip will exist with this code.  use:

    var i = 0;

    onMouseDown = function () {}

    _root.createEmptyMovieClip ("mcLine" + i, i);

    {with (_root ["mcLine" + i])}

    lineStyle (6,0,100,true,"normal","none","round",1);

    }

    xPointA = _xmouse;

    yPointA = _ymouse;

    pressing = true;

    };

    onMouseUp = function () {}

    This ["mcLine" + i] .cacheAsBitmap = true;

    i ++ ;

    pressing = false;

    };

    var pressing: Boolean = false;

    onMouseMove = function () {}

    If {(urgent)

    with (_root ["mcLine" + i]) {}

    moveTo (xPointA, yPointA);

    lineTo (_xmouse, _ymouse);

    xPointA = _xmouse;

    yPointA = _ymouse;

    }

    }

    };

  • is unable to scale a 3D vector length as you wish

    I try to view a vector 3D of a scene. I want the vector position, direction and length to vary with time. The home of the dmonstrates program it.  The position vector and the direction change as you wish, but the length does not change as you wish.  The problem may be clear, if you run the attached VI.  Basically, I create a vector oriented according to the Z axis.  With each time step, I change its length along Z, then translate it in the desired position, then turn it to the desired response.  The problem is that the cycles of component Z between 0 and 1, rather than the length of cycle between 0 and 1.

    I searched the forums for discussion of assistance, does not.

    I assumed that this situation occurs because the component most recently posted version of the vector z was being phased out, instead of scaling the vector of the component z of the INITIAL report, that points along the z axis.  That's why I tried to create 2 copies of the vector object.  A copy is the "variable" which is processed and displayed.  The other is kept not transformed.  At each stage of the stime, I copy that unprocessed to processed, and then transform.  This did not remedy the problem.  I tried to erase all the transformations at the end of each timestep - and this is the verion I my validation.  However, this does not have the problem.

    A solution I've seen for this problem is to create a new vector object during each time step, and then add it to the stage, and then resize it, translate and turn it.  Then, when it is displayed, the object is removed from the scene.  Then a new vector object is created for the next time step.  It seems mathematically inefficient and inelegant, and I'm worried about memory fills, since I would create a new object every 50 milliseconds.

    Two subVIs (DrawUnitArrow, DrawUnitAxes) are also attached.

    Thank you.

    In VI you posted, if you replace the "Set Rotation" with an 'object to turn' vi vi, I believe you get the desired behavior. (You probably also want to turn before translate you)

  • sampleImage() and vector layers

    I am using sampleImage to scan an alpha channel of the layer with a great success.

    Until I started working with vector layers.

    Here are my questions:

    The sampleImage function works differently on the layers form and text-

    It scans the layer from dimensions of the composition and not the layer - which means that if a text layer is off the screen that the sampleImage will find not all pixels not transparent.

    This is unlike the layers AV in which sampleImage scans the layer itself, regardless of the position in the model. So same transparent non-pixels who are off the screen of the computer are analyzed.

    Anyway around this and enjoy a layer of text or form regardless of the comp? I think a very long way to get this done by using a double model resized to match the sourceRecAtTime of the form/text layer, the layer solo and analysis the precomp duplicate, but that seems to be a chore...

    Another question, I've found is with layer of film vector (for example, an illustrator file) that has the collapse Transformations switch activated - sampleImage returns completely different values with this option disabled... did not understand the boss again.  Anyone encountered before?

    Thanks a bunch

    Roy

    Since some versions, layers have a method sourcePointToComp() and compPointToSource(), so with the sourceRectAtTime method you should be able to scan the right area in coordinates of the layer, and then transform into the space of the model.

    Xavier

  • Using vectors | How to up - or reduce my work?

    I only started using Illustrator for 2 weeks now, so MANY things are still confusing to me...

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

    I read that Illustrator uses the principle of vectors, perfectly maintaining the quality of the document No matter how big/small you up - or to reduce your stuff.

    Large (in theory), but how can I go to scale a design 150 x 150 pixels up to a 750 x 750 one... keep the same exact quality?

    * Please keep in mind that I just started, when helping me on one of the above questions, I would like to a detailed explanation if possible.

    You want to resize it just on export or in the file?

    For the scaling in the file, please see:

    https://helpx.Adobe.com/Illustrator/how-to/transform-artwork.html

Maybe you are looking for