Performance using the virtualization problem

If we compare our software installed in a physical host and a comparable VM (same CPU, memory), we notice that the product is twice slower when running in a virtual machine (guest operating system is Windows 2003, the use of an ESXi 4.0 host. The software uses a single CPU)

As we are not in the production environment, we tried with all other VM turned off. We tested our VM with and without reserve of CPU (best results with), with and without memory (absolutely no difference) and 1, 2 and 4 vCPU

After several tests, it seems that the problem comes from the use of semaphores: when replacing them with critical sections (but we cannot just replace), the performances are quite the same between the physical host and the virtual machine. All the code is executed with similar performance, but when using semaphores, the VM uses longer than the physical host CPU.

Someone at - it something on such a problem ears already? Is there a reason to explain the poor performance when using semaphores Windows hosted by ESXi 4.0?

For example, we wrote a simple program to compare hosted by ESX Windows semaphores (in our laboratory, it took 10 sec on a physical host and 22sec in a virtual machine):

#include "stdafx.h".

int _tmain (int argc, _TCHAR * argv)

{

unsigned __int64 nCount;

NTickCount = DWORD: GetTickCount();

HANDLE hSemaphoreBridgets = CreateSemaphore (NULL, 1, 1, NULL);

for (nCount = 0; nCount < 10000000; ++ nCount)

{

WaitForSingleObject (hSemaphoreBridgets, INFINITE);

ReleaseSemaphore (hSemaphoreBridgets, 1, NULL);

}

printf ("%d s\r\n duration", (: GetTickCount() - nTickCount) / 1000);

CloseHandle (hSemaphoreBridgets);

return 0;

}

I have your reference of profiling and found that he spends most of his time in these three Windows HAL functions:

HAL 39.83%! KfLowerIrql

HAL 19,82%! KeRaiseIrqlToDpcLevel

19.07% hal! KeRaiseIrqlToSynchLevel

Hot spots in each function are the access TPR (0FFFE0080h is the address of the TPR in the local APIC):

HAL! KfLowerIrql:

807168e4 890d8000feff mov dword ptr ds:------[0FFFE0080h], ecx

807168ea a18000feff mov eax, dword ptr ds:-[FFFE0080h]

HAL! KeRaiseIrqlToDpcLevel:

807168a 0 8b158000feff mov edx, dword ptr ds:-[0FFFE0080h]

807168a 6 c7058000feff41000000 mov dword ptr ds:------[0FFFE0080h], 41 h

HAL! KeRaiseIrqlToSynchLevel:

807168bc 8b158000feff mov edx, dword ptr ds:-[0FFFE0080h]

807168c 2 c7058000feff41000000 mov dword ptr ds:------[0FFFE0080h], 41 h

Since the local APIC is virtualized, TPR access usually causes a VM exit under hardware virtualization.  However, Intel has introduced FlexPriority, which prevents the release of the virtual computer for all TPR readings and some TPR Scriptures.  For this reason, ESX 4.0 by default x - VT for 32-bit Windows 2003 on Intel FlexPriority chips.  Unfortunately, FlexPriority isn't a panacea.  On native hardware, TPR access are usually only a few cycles.  With FlexPriority, TPR access which do not cause a VM output may still take hundreds of cycles.  Access TPR cause VM-output take several cycles of a thousand.  Fortunately, we still have the possibility to use binary translation.  Under the binary translation, TPR access usually take dozens of cycles.

For this particular workload, you must configure your client to use binary translation.  On my system of Penryn, benchmark runs in 22 seconds using VT - x (with FlexPriority), but it takes 13 seconds using the binary translation.  (For completeness, it takes 90 seconds using VT - x without FlexPriority).

Your client's situation is different.  AMD has never introduced an equivalent to FlexPriority technology.  However, if your customer has configured their VM to use the material support of the MMU, then the virtual computer will use AMD - V, which suffers from the same problems that VT - x without FlexPriority.  Make sure they have configured computer virtual for the MMU software support so that it runs using the binary translation. (For this guest under ESX 3.5 default execution mode is binary translation).

Tags: VMware

Similar Questions

  • WRT160N performance using the adapter G

    IM about to buy a new router and stores near my place are all embellished wireless routers N. Im planning to get the WRT160N, but the problem is that my laptop has wireless g adapter.

    So my question is how will performance be since the adapter/router combo is different? I know that I will have no gain, but it's going as good N Router work a G router would be on a G adapter?

    Thanks in advance.

    P.S im running windows Xp on the laptop.

    If your laptop has a built-in wireless card so its only going to get 54 Mbps. If you have a Wireless N router you will need to get a Wireless N adapter in order to reach up to 300 Mbit/s speeds.

    You may need to configure the router from N to B & G in wireless mode settings. This can frustrate the point in getting a N.
    Given the low cost of wireless adapters can be better to upgrade both at the same time and ensure compatibility and performance (perhaps).

    However, the two will work together.

  • Cube Performance for the Refresh problem

    We are facing a strange performance problem with the refresh of the cube. The cube that would take 1 HR to update takes about 3.5 to 4 hours without any change in the environment. In addition, the data it processes are almost the same before and now. Only these cube out of all of the cubes in the workspace suffers the problem of performance over a period of time.

    Details of the cube:
    This cube has 7 dimensions and 11 measures (mixture of sum and avg as grouping algorithm). No compression. Cube is partitioned (48 partitions). Main source of data is a materialized view that is partitioned in the same way as the cube.

    Data volume: 2480261 records in the source to deal with everyday (almost evenly distributed across the partition)

    Cube is refreshed with the script below

    DBMS_CUBE. BUILD (< < cube_name > >, 'SS', 5, false, true, false, true);

    Has anyone faced a similar question? Please can advise on what could be the cause of performance degradation.

    Environment - Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
    MN - awm11.2.0.2.0A

    Records are recorded in CUBE_BUILD_LOG if you generate from DBMS_CUBE. BUILD or AWM. (The situation for CUBE_REJECTED_RECORDS is different).

    Maybe you build another schema? Records are sent to the CUBE_BUILD_LOG table in the schema of the invoker, not the AW patterns. For example, if you have an AW in the SCOTT schema and run the DBMS_CUBE. BUILD connected call as SCOTT, then all the log records will be inserted in SCOTT. CUBE_BUILD_LOG. But if you run DBMS_CUBE. BUILD connected as certain master pattern, say OLAPDBA, then the folders would be added in OLAPDBA. CUBE_BUILD_LOG. In both cases if the table does not exist, then the construction will continue without error (and connect).

    On the slowdown in general construction, have you tried the cube of compensation and rebuild from scratch? If you have visited additional charges running for awhile, then can slow down the performance of cube generation. Think about the fragmentation of the disk, and you get the basic idea.

  • performance on the VMS problem

    Hello


    Do you have a do deal with all nicely performace concern (that is to say CPU, memory, network or disk) with offset in VMtools version and the version of the material on any version of Esxi host.

    My Esxi version: 5.5 build-3029837 and 2702869.


    Please suggest if all available KB associated with this type of questions.


    For Ex:


    Name: any1

    GuestOS: Microsoft Windows Server 2012 (64-bit)

    Version: v8

    ToolsRunningstatus: guestToolsRunning

    ToolsStatus: toolsOk

    ToolsVersion: 9357

    Name: any2

    GuestOS: CentOS 4/5/6 (64-bit)

    Version: v7

    ToolsRunningstatus: guestToolsRunning

    ToolsStatus: toolsOld

    ToolsVersion: 8394

    Name: any3

    GuestOS: Microsoft Windows Server 2012 (64-bit)

    Version: v8

    ToolsRunningstatus: guestToolsRunning

    ToolsStatus: toolsOk

    ToolsVersion: 9355

    Name: any4

    GuestOS: Red Hat Enterprise Linux 6 (64-bit)

    Version: v9

    ToolsRunningstatus: guestToolsRunning

    ToolsStatus: toolsOld

    ToolsVersion: 9355



    Yes, it could be the performance impact, but not specifically because of a link between VMware Tools v9 and HW version v8.

    VMware Tools 9 implies that you are on vSphere 5.1 or higher.

    And here the HW version 9 or higher.

    The HW version could have the impact on performance if you follow is not the version of vSphere.

    Notice that handling change when you go to HW v9 or higher (Web client)

  • UCS-C200M2 and the performance of the 1980s...

    Has anyone deployed UCS C200 M2 boxes and tried to team onboard gigabit interfaces? I'm void Mbps deployed VM CUCM 8.5.1 performance using the prescribed Cisco 1000 user model. I ran the NIC and stand alone teams and get the same result, seriously bad performance. I have a Dell 2970 on the same switch running ESXi and am pulling almost gigabit wirline her. The two are running EXSi 4.1. Both are associated by using the road based on the hash of the IP. Same downloads from the ESXi host IP address is dead slow.

    Please open a TAC service request because we need more information about this configuration.

    Just a quick check. You have all the traffic shaping configured on the virtual switch on the ESXi host output ports?

    HTH

    Padma

  • Sharing a vApp, catalog by using the vCloud API

    I need to share the vApp using the vCloud API but cannot find anything it either relating to the sharing of operation in the API documentation. If someone was able to perform using the API please give me the steps or the example code to do the same.

    Hello

    You can share vApps among members of your organization.

    'Control of access to the catalogues and vApps' - vCloud API Guide 1.5, Pg No. 157.

    GET https://vcloud/api/vApp/{VAPP id} / controlAccess - read access control settings on the vApp.

    POST https://vcloud/api/vApp/{VAPP id} / action/controlAccess - update settings for access control on the paralytic.

    Kind regards

    Rajesh Kamal.

  • performance problem, when I use the lappy for long periods... he get odious

    I installed windows 7 in my lappy... When I use the lappy for long... he get odious... I'm irritating with that... and when I restart it started working as usual.please help me form this problem

    Hello

    1. have there been recent changes to the computer before the show?

    2. this happens to you when you work on any specific application?

    I suggest you follow the given steps and later a update on the State of the question.

    Method 1: Try to run the troubleshooter of Performance:

    http://Windows.Microsoft.com/en-us/Windows7/open-the-performance-Troubleshooter

    Method 2: Optimize Windows 7 for better performance:

    http://Windows.Microsoft.com/en-us/Windows7/optimize-Windows-7-for-better-performance

    Important: when running chkdsk on the drive hard if bad sectors are found on the disk hard when chkdsk attempts to repair this area if all available on which data may be lost.

    Ways to improve your computer's performance:

    http://Windows.Microsoft.com/en-us/Windows7/ways-to-improve-your-computers-performance

    For all windows questions do not hesitate to contact us and we will be happy to help you.

  • Performance-to-many problem (using the model of the FAQ)

    After reading "HOW TO: post a request for tuning SQL - model showing statement" I gathered:

    I have included some general information at the bottom of the post

    The following SQL statement has been identified as a bad performance. It takes ~ 160 seconds to run, but similar (indicated below first statement) SQL statements run in ~ 1 second.

    SQL taking 160 seconds:
    SELECT
    a.*
    FROM
    table_a a
    INNER JOIN table_a_b ab ON a.id = ab.media_fk
    WHERE
    ab.channel_fk IN (7, 1);
    SQL in ~ 1 second or less
    ...
    ab.channel_fk IN (7);
    Or:
    ...
    ab.channel_fk IN (6, 9, 170, 89);
    The purpose of the SQL is to return lines from table_a associated table_b (not in SQL) through the junction table table_a_b.

    The version of the database is 10.2.0.4.0

    These are the parameters relevant for the optimizer:
    show parameter optimizer;
    
    NAME                                               TYPE        VALUE
    -------------------------------------------------- ----------- -----------------------------------------
    optimizer_dynamic_sampling                         integer     2
    optimizer_features_enable                          string      10.2.0.4
    optimizer_index_caching                            integer     0
    optimizer_index_cost_adj                           integer     100
    optimizer_mode                                     string      ALL_ROWS
    optimizer_secure_view_merging                      boolean     TRUE
    
    show parameter db_file_multi;
    
    NAME                                               TYPE        VALUE
    -------------------------------------------------- ----------- -----------------------------------------
    db_file_multiblock_read_count                      integer     16
    
    show parameter db_block_size;
    
    NAME                                               TYPE        VALUE
    -------------------------------------------------- ----------- -----------------------------------------
    db_file_multiblock_read_count                      integer     16
    
    select sname, pname, pval1, pval2 from sys.aux_stats$;
    
    SNAME                          PNAME                          PVAL1                  PVAL2
    ------------------------------ ------------------------------ ---------------------- -------------------
    SYSSTATS_INFO                  STATUS                                                COMPLETED
    SYSSTATS_INFO                  DSTART                                                07-18-2006 23:19
    SYSSTATS_INFO                  DSTOP                                                 07-25-2006 23:19
    SYSSTATS_INFO                  FLAGS                          0
    SYSSTATS_MAIN                  SREADTIM                       5.918
    SYSSTATS_MAIN                  MREADTIM                       7.889
    SYSSTATS_MAIN                  CPUSPEED                       1383
    SYSSTATS_MAIN                  MBRC                           8
    SYSSTATS_MAIN                  MAXTHR                         1457152
    SYSSTATS_MAIN                  SLAVETHR                       -1
    Here is the output of the EXPLAIN PLAN of:
    PLAN_TABLE_OUTPUT
    Plan hash value: 3781163428
    
    ----------------------------------------------------------------------------------------------------
    | Id  | Operation             | Name               | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT      |                    |  1352K|   771M|       | 60042   (3)| 00:05:56 |
    |*  1 |  HASH JOIN            |                    |  1352K|   771M|    27M| 60042   (3)| 00:05:56 |
    |*  2 |   INDEX FAST FULL SCAN| SYS_IOT_TOP_316310 |  1352K|    11M|       |  1816   (4)| 00:00:11 |
    |   3 |   TABLE ACCESS FULL   | TABLE_A            |  2190K|  1230M|       | 32357   (4)| 00:03:12 |
    ----------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       1 - access(""AB"".""MEDIA_FK""=""A"".""ID"")
       2 - filter(""AB"".""CHANNEL_FK""=1 OR ""AB"".""CHANNEL_FK""=7)
    
    Note
    -----
       - 'PLAN_TABLE' is old version
    For reference, the EXPLAIN PLAN when using
    ...
    ab.channel_fk IN (6, 9, 170, 89);
    that runs in ~ 1 second is:
    PLAN_TABLE_OUTPUT
    Plan hash value: 794334170
    
    ----------------------------------------------------------------------------------------
    | Id  | Operation          | Name      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT   |           |   143K|    81M|       | 58982   (3)| 00:05:50 |
    |*  1 |  HASH JOIN         |           |   143K|    81M|  2952K| 58982   (3)| 00:05:50 |
    |   2 |   INLIST ITERATOR  |           |       |       |       |            |          |
    |*  3 |    INDEX RANGE SCAN| C_M_INDEX |   143K|  1262K|       |  1264   (1)| 00:00:08 |
    |   4 |   TABLE ACCESS FULL| TABLE_A   |  2190K|  1230M|       | 32357   (4)| 00:03:12 |
    ----------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       1 - access(""AB"".""MEDIA_FK""=""A"".""ID"")
       3 - access(""AB"".""CHANNEL_FK""=6 OR ""AB"".""CHANNEL_FK""=9 OR
                  ""AB"".""CHANNEL_FK""=89 OR ""AB"".""CHANNEL_FK""=170)
    
    Note
    -----
       - 'PLAN_TABLE' is old version
    Here is the output of SQL * Plus AUTOTRACE, including CALENDAR information:
    SQL> set autotrace traceonly arraysize 100;
    SQL> SELECT
      2  a.*
      3  FROM
      4  table_a a
      5  INNER JOIN table_a_b ab ON a.id = ab.media_fk
      6  WHERE
      7  ab.channel_fk IN (7, 1);
    
    1336148 rows selected.
    
    
    Execution Plan
    ----------------------------------------------------------
    Plan hash value: 3781163428
    ----------------------------------------------------------------------------------------------------
    | Id  | Operation             | Name               | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT      |                    |  1352K|   771M|       | 60042   (3)| 00:05:56 |
    |*  1 |  HASH JOIN            |                    |  1352K|   771M|    27M| 60042   (3)| 00:05:56 |
    |*  2 |   INDEX FAST FULL SCAN| SYS_IOT_TOP_316310 |  1352K|    11M|       |  1816   (4)| 00:00:11 |
    |   3 |   TABLE ACCESS FULL   | TABLE_A            |  2190K|  1230M|       | 32357   (4)| 00:03:12 |
    ----------------------------------------------------------------------------------------------------
    
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       1 - access("AB"."MEDIA_FK"="A"."ID")
       2 - filter("AB"."CHANNEL_FK"=1 OR "AB"."CHANNEL_FK"=7)
    
    Note
    -----
       - 'PLAN_TABLE' is old version
    
    
    Statistics
    ----------------------------------------------------------
          10586  recursive calls
              0  db block gets
         200457  consistent gets
         408343  physical reads
              0  redo size
      498740848  bytes sent via SQL*Net to client
         147371  bytes received via SQL*Net from client
          13363  SQL*Net roundtrips to/from client
             49  sorts (memory)
              0  sorts (disk)
        1336148  rows processed
    The TKPROF output for that statement looks like the following:
    TKPROF: Release 10.2.0.4.0 - Production on Mon Oct 1 12:23:21 2012
    
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    
    Trace file: ..._ora_4896.trc
    Sort options: default
    
    ********************************************************************************
    count    = number of times OCI procedure was executed
    cpu      = cpu time in seconds executing
    elapsed  = elapsed time in seconds executing
    disk     = number of physical reads of buffers from disk
    query    = number of buffers gotten for consistent read
    current  = number of buffers gotten in current mode (usually for update)
    rows     = number of rows processed by the fetch or execute call
    ********************************************************************************
    
    ALTER SYSTEM SET TIMED_STATISTICS = TRUE
    
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.03          0          0          0           0
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        2      0.00       0.03          0          0          0           0
    
    Misses in library cache during parse: 0
    Parsing user id: 21
    ********************************************************************************
    
    SELECT
    a.*
    FROM
    table_a a
    INNER JOIN table_a_b ab ON a.id = ab.media_fk
    WHERE
    ab.channel_fk IN (7, 1)
    
    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        2     27.23     163.57     179906     198394          0          16
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        4     27.25     163.58     179906     198394          0          16
    
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 21
    
    
    
    ********************************************************************************
    
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        2      0.01       0.00          0          0          0           0
    Execute      2      0.00       0.03          0          0          0           0
    Fetch        2     27.23     163.57     179906     198394          0          16
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        6     27.25     163.62     179906     198394          0          16
    
    Misses in library cache during parse: 1
    
    
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    
    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        0      0.00       0.00          0          0          0           0
    Execute      0      0.00       0.00          0          0          0           0
    Fetch        0      0.00       0.00          0          0          0           0
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        0      0.00       0.00          0          0          0           0
    
    Misses in library cache during parse: 0
    
        2  user  SQL statements in session.
        0  internal SQL statements in session.
        2  SQL statements in session.
    ********************************************************************************
    Trace file: ..._ora_4896.trc
    Trace file compatibility: 10.01.00
    Sort options: default
    
           1  session in tracefile.
           2  user  SQL statements in trace file.
           0  internal SQL statements in trace file.
           2  SQL statements in trace file.
           2  unique SQL statements in trace file.
          46  lines in trace file.
         187  elapsed seconds in trace file.
    DBMS_XPLAN. Output DISPLAY_CURSOR:
    select * from table(dbms_xplan.display_cursor('474frsqbc1n4d', null, 'ALLSTATS LAST'));
    
    PLAN_TABLE_OUTPUT
    SQL_ID  474frsqbc1n4d, child number 0
    -------------------------------------
    SELECT /*+ gather_plan_statistics */ c.* FROM table_a c INNER JOIN table_a_b ab ON c.id = ab.media_fk WHERE ab.channel_fk IN (7, 1)
    
    Plan hash value: 3781163428
    
    ---------------------------------------------------------------------------------------------------------------------------------------------------
    | Id  | Operation             | Name               | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  | Writes |  OMem |  1Mem | Used-Mem |
    ---------------------------------------------------------------------------------------------------------------------------------------------------
    |*  1 |  HASH JOIN            |                    |      1 |   1352K|   1050 |00:00:40.93 |     198K|    182K|    209K|    29M|  5266K| 3320K (1)|
    |*  2 |   INDEX FAST FULL SCAN| SYS_IOT_TOP_316310 |      1 |   1352K|   1336K|00:00:01.34 |   10874 |      0 |      0 |       |       |          |
    |   3 |   TABLE ACCESS FULL   | TABLE_A            |      1 |   2190K|   2267K|00:02:45.56 |     187K|    182K|      0 |       |       |          |
    ---------------------------------------------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       1 - access(""AB"".""MEDIA_FK""=""C"".""ID"")
       2 - filter((""AB"".""CHANNEL_FK""=1 OR ""AB"".""CHANNEL_FK""=7))
    Thank you for reading I'm waiting for suggestions to improve the performance of this statement.

    -----

    H3. Backgroud

    There are many years my company made decided to maintain many-to-many relationships in our database using pipe delimited fields. An example of field value:
    '|ABC|XYZ|VTR|DVD|'
    Each delimited value refers to a unique "short" code TABLE_B (there is also a real digital foreign key to TABLE_B, which is what I use in the junction table). We are regularly using these columns with the next SQL style:
    ...
    WHERE
    INSTR(pipedcolumn, '|ABC|') > 0
    OR INSTR(pipedcolumn, '|XYZ|' > 0
    ...
    Appropriate indexes have been created over the years to make this process as soon a possible.

    We now have an opportunity to correct some of these errors of design and implementation of junction tables to replace the current field. Before that, we have decided to take a copy of a database to a client with the largest set of records and test. I created a new junction table:
    TABLE_A_B DDL:
    
        CREATE TABLE TABLE_A_B (
            media_fk NUMBER,
            channel_fk NUMBER,
            PRIMARY KEY (media_fk, channel_fk),
            FOREIGN KEY (media_fk) REFERENCES TABLE_A (ID),
            FOREIGN KEY (channel_fk) REFERENCES TABLE_B (ID)
        ) ORGANIZATION INDEX COMPRESS;
    
        CREATE INDEX C_M_INDEX ON TABLE_A_B (channel_fk, media_fk) COMPRESS;
    And the analysis on a pipe delimited field, populated by this new table.

    I then compared the performance of the following SQL:
    SELECT
    a.*
    FROM
    table_a a
    INNER JOIN table_a_b ab ON a.id = ab.media_fk
    WHERE
    ab.channel_fk IN (x, y, n); -- Can be Many Minutes
    
    --vs.
    
    SELECT
    a.*
    FROM
    table_a a
    WHERE
    INSTR(OWNERS,'|x|')    >0
    OR INSTR(OWNERS,'|y|')    >0
    OR INSTR(OWNERS,'|n|')    >0; -- About 1 second seemingly regardless
    When x, y, n are values that occur less frequently in the TABLE_A_B.CHANNEL_FK performance are comparable. However once the frequency of x, y, n increases, performance suffers. Here is a summary of the data CHANNEL_FK in TABLE_A_B:
    --SQL For Summary Data
    SELECT channel_fk, count(channel_fk) FROM table_a_b GROUP BY channel_fk ORDER BY COUNT(channel_fk) DESC;
    
    CHANNEL_FK             COUNT(CHANNEL_FK)
    ---------------------- ----------------------
    7                      780741
    1                      555407
    2                      422493
    3                      189493
    169                    144663
    9                      79457
    6                      53051
    171                    28401
    170                    19857
    49                     12603
    ...
    I noticed that whenever I use any combination of values that occur over approximately 800 000 times (i.e. IN (7, 1) = 780741 + 555407 = 1336148) then I get performance problems.

    I find it very difficult to accept that the old pipe delimited fields are a better solution (without taking into account any other than this search criterion!).

    Thank you for reading this far. I really look forward to suggestions on how to improve the performance of this statement.

    Published by: user1950227 on October 1, 2012 12:06
    Table of link renamed in DDL.

    davebcast wrote:

    The following SQL statement has been identified as a bad performance. It takes ~ 160 seconds to run, but similar (indicated below first statement) SQL statements run in ~ 1 second.

    Keep in mind that the enforcement timeframe has elapsed is a poor metric to use for benchmarking of SQL. The reason is that the same workload does not mean that the same elapsed execution time.

    The workload for example shows a block of 1000 readings. There will be a difference marked by this workload reading data of the slow physical disks, or making this workload by reading data from memory in memory cache. And if it happens to be in memory or on disk is a kind of "random" thing (depends on many environment and factors of execution).

    Thus, rather than measure the elapsed time and use it to compare, rather compare actual workloads. A workload of 500 block reading is faster and better than a block of 1000 DSL - despite the fact that a point of elapsed time can show the 500 read being slow (e/s physical) block a block of 1000 to read (e/s logic).

  • Performance problem on the SQL query that does not use the primary key index

    Hello!

    I have some performance issues on a single SQL query (Oracle 10 g).
    I could solve the problem by using the INDEX indicator, but I would like to know WHY this is happening.

    * Tables *.
    create table jobs)
    ID number (5) not null,
    name varchar2 (100),
    primary key constraint Job_PK (id)
    )
    /
    -Record count: 298

    create table Comp)
    integer ID not null,
    name varchar2 (100),
    primary key constraint Comp_PK (id)
    )
    /
    -Record count: 193

    -Relation m: n
    create table JobComp)
    integer ID not null,
    id_job integer not null,
    id_comp integer not null,
    primary key constraint JobComp_PK (id),
    unique key constraint JobComp_UK (id_job, id_comp),
    Constraint JobComp_FK_Job foreign key (id_job) refers to Job (id),
    Constraint JobComp_FK_Comp foreign key (id_comp) makes reference Comp (id)
    )
    /
    create index JobComp_IX_Comp on JobComp (Cod_Comp)
    /
    create index JobComp_IX_Job on JobComp (Cod_Job)
    /
    -Record count: 6431

    * Ask *.

    When I run this query, the execution plan shows the index using (JobComp_PK and JobComp_IX_Comp).
    No problem.

    Select JobComp.*
    of JobComp
    Join jobs
    on Job.id = JobComp.id_job
    where JobComp.id_comp = 134
    /
    -runs in 0.20 sec

    But when I add the field 'name' of the work table the plan uses full access table to the table of work

    Select JobComp.*, Job.name
    of JobComp
    Join jobs
    on Job.id = JobComp.id_job
    where JobComp.id_comp = 134
    /
    -runs in the 2.70 dry

    With the help of the index

    Select / * + INDEX (Job Job_PK) * /.
    JobComp.*, Job.name
    of JobComp
    Join jobs
    on Job.id = JobComp.id_job
    where JobComp.id_comp = 134
    /
    -runs in 0.20 sec

    * Doubt *.

    This behavior is correct?

    PS. : I tried to recalculate the statistics, but nothing changes:

    analyze the job calculation table statistics.
    /
    change the statistical calculation of index Job_PK reconstruction;
    /
    Start
    dbms_utility.analyze_schema (sys_context ('userenv', 'current_schema'), 'CALCULATE');
    end;
    /

    [of]
    Gustavo Ehrhardt

    Gus.EHR wrote:
    Hello.
    I'm sorry for the plan unformatted.
    The execution time of the querys "without field name' and 'with the field name with suspicion" are equal.
    He has no problem caching, because I get the plans of the sequence different from the querys and repeated the performance. The result is always the same.

    I don't think that there is no problem with oracle crossing LOOP IMBRIQUEE to the HASH JOIN when you include the field name and this should be the expected behavior. But it seems that your WORKING table has a degree of parallelism set against what is causing the query to run in parallel (as JOB table is now available with full table scan, instead of indexed access earlier). It could be that the parallel execution is contributor to extra Runtime.
    (a) do you know why the degree of parallelism on the WORK table has been defined? Do you need it?

    You can see if the following query provides a better response time?

    select /*+ NOPARALLEL(JOB) */ JobComp.*, Job.Name
      from JobComp
      join Job
        on Job.id = JobComp.id_job
     where JobComp.id_comp = 134
    
  • Using the cmdlet Get-stats for the problems of performance of ESXi

    I need to detect the bottlenecks (if any) causing poor performance with a (free) 5.5 ESXi host.

    I see that if I use the cmdlet Get - stat PowerCLI I get dozens of meters, such as "mem.usage.average" or "'rescpu.maxlimited1.latest ', just to give two samples. "

    Can I identify a subset of the counters I should follow to identify possible bottlenecks in the fastest way possible?

    Concerning

    Marius

    Everything depends of course.

    There are several positions which list a number of key counters to watch.

    The Hosts of ESXi monitoring - a deeper on the what and the why look , you will find a good starting set.

  • The operation cannot be performed because the "Firefox" element is in use.

    Whenever I try to download the latest version of Firefox on my mac, I get the following error:

    "The operation cannot be performed because the"Firefox"element is in use."

    I close Firefox and still get this error. I tried this guy 100 times and may not know how to solve this problem. Help!

    I have Mac OS X 10.6.8 v.

    Download the full Firefox installation program and save the file to the desktop
    https://www.Mozilla.org/en-us/Firefox/all.html

    If he has problems with the update or with the permissions then best is to download the full version and trash the version currently installed to do a fresh install of the new version.

    Download a new copy of the Firefox application and save the file to disk on the desktop image

    Your personal data are stored in the Firefox profile folder, so you will not lose your bookmarks and other data to personal when you uninstall and (re) install Firefox.

  • Screen touch problems when you use the converter

    We just bought an Envy 27 tilt to our Caravan for all the good characteristics that HP has and TV

    Cause sometimes will want to run the HP converter 12v 400 watt true sine wave.

    We tried this to find a problem, the computer functioned well but the touchscreen ran a muck and did not work as usual.

    So after much googling and some reading I'd like here to answer fo HP.

    As I can't believe, I'd be the first to come on this problem and want to put it all in one in a motor home.

    What I read, it could be a matter of dirty power of the inveter, but we thought we have purchase the best brand true sine wave, we could leave our guys of battery here in Australia.

    Any advice would be received with gratitude.

    Thanks Lou, first of all for your time and on the other hand for your thoughts and advice.

    We have it finally working outside a performance of the inverter with number.

    But I have to say without any worthy of official telephone hotline support of HP.

    Lou, I'm working through several of your suggestions, pending the official response to my survey on what brand or type of UPS or UPS I should use with my desire to tilt.

    Well, it is very sad that a massive company like HP with what you would think would be a very large R & D service, cannot answer a simple question, like what type of UPS or UPS if they recommend to work with the touchscreen of the tilt.

    The poor people, I was talking to, had no idea what I was talking about, or what I was trying to do. How a computer call center peason knows not what a UPS, I can understand on an inverter, but the tech people, these are things really very similar in the different boxes.

    OK, if you have this problem with your inverter and touch screen, first of all not all inverters are equal even in the same brand that I discovered. I want to thank my provider inverter & battery for their time and for allowing me to put in place the HP Envy of tilt on the back of their store and try different UPSs, inverters and batteries.

    I'll talk about brands here, not rat on the brand, but as it may be useful to someone else in Australia in the future. It seems that my "Epower DCAC 400w 12v true sine inverter" wasn't at the height when it came to clean AC power required to operate the touch screen without problem.

    In the end, we tried a "Epower DCAC 1000w true Sine Wave 12v', really just to give it a go, thinking it would be a better to be the same brand as the unit of 400w, well it worked quite OK

    This unit of true sine wave Epower 12 v 1000w, fixed our problem with touchscreen and ran HP Envy tilt as if it is running on AC power.

    If anyone is interested for camper here, I found this configuration to draw between 4 and 5 amperes of batteries of 12v and about 41 Watts @ runing 240 volts a you tube clip.

    Well it is my experiences and the final result, I hope this helps someone else in the future, I'm sure that HP will not be able to.

    Thank you all.

  • Perform a sequence using the new method of execution

    Hi ppl,

    I use the Engine.NewExecution method in LabVIEW to perform a sequence using sequential process model. I have been successful in this attempt.

    Now when I tried to pass arguments to the sequence with this method I could not do

    From the help file, I found to pass property to the sequenceArgsParam in the Engine.NewExecution. I used the Engine.NewPropertyObject to create a new property object. My problem started here. I was not able to define the parameters for the property object I created. When I created an object of type container property, newExecuion method returned an error indicating that the type is the string even if the setting for my sequence was a container. When I created a method of setValString string property object returned error saying unable to find settings where the look of string upward was parameters.x

    Please help me some body. I'm stuck with this upward.  can someone give me an example of program that passes parameters to the sequence when running via the NewExecution method.

    Hello

    It is not the Engine.NewPropertyObject method to pass parameters

    I used to sequence method before running the sequence

    try to replace the step Engine.NewExecution of this VI

    the values are in a cluster table: parameter is the name of the parameter in your sequence, the value is the value to pass

    A2

    Note 1: there is only the string in this VI, it is possible to change with integer...

    Note 2: If you have a container, the parameter name is "container". "" The name of the parameter.

  • OfficeJet 6500 Wireless: Win 10 - Solution Center - scan not performed as another program using the imaging device

    I upgraded to 10 Windows on a laptop ASUS, then updated the software for a HP Officejet 6500 E709n Series printer HP solutions Center.

    I can print successfully to the printer but when I open the solution Center and then try to scan an image or a Document, I get the following error "Scan cannot be performed because another program or computer using the networked imaging device.

    Extended error information is 8, [(0.18,-2147467259)]

    When I look in device under imaging devices Manager, two devices are displayed ASUS USB2.0 WebCam (1) and (2) Officejet 6500 E709n.

    It would be much appreciated if someone could help me solve this problem.

    Hi midnight-anwrs,.

    Thanks for getting back to me.

    I looked into your link "Printer problems after upgrade to Windows 10" and 6 "Scan with a scanning application" stage, I found the solution.

    I downloaded the "HP Scan and capture App" and can now easily scan photos and documents.

    Thanks for your help.

    Much appreciated,

    KenRabs

  • My Vista computer has ceased to be able to print or use the windows photo gallery, or to be able to perform updates.

    Original title: non-functional computer

    my vista computer has ceased to be able to print or use the windows photo gallery, or to be able to run updates and I can't find any way to put this right - someone had something similar - it custom install service pack 2 for vista and it wont let me download a update Internet explorer 9 - also stop the program index - continues and the print spooler said it works but it doesn't will not print - any ideas?

    Hi John,.

    1. you receive messages or error codes when you try to print or to use the Windows Photo Gallery?

    2. What is the code of error or message that you receive when you try to install service pack 2 and Internet Explorer 9 download?

    3 did you recent hardware or changes to the software of the system?

    You try to perform a restore of the system to a restore point before you have been affected by the problem and check.

    Note: When you perform the system restore to restore the computer to a previous state, programs and updates that you have installed are removed.

    To run the system restore, you can consult the following articles:

    System restore

    System Restore: frequently asked questions

Maybe you are looking for

  • Display recent emails on iphone problem

    I have access to my account hotmail via the Mail app on my iPhone 5s. My e-mails are updated manually and when I updated the mail app today, I can only show emails from June-July 2010. I've never had this problem before, and I checked that the softwa

  • Reverse the factory setting

    I have a phone that was given to me from my father-in-law, it's a phone of one of his former employees that was great in the office. We had no password information, so we tried to reset the phone to wipe and start over. This just finished sending us

  • Re: Where can I buy a new screen for Satellite A200 - 1 k 8?

    Hello world I would like to know if it is possible to buy a new screen (across the top in fact) for a Satellite A200 - 1 k 8 and where? I'm unable to find information on the Toshiba site, so maybe you can help. ;)

  • fat files problems ex

    I have an Acer Aspire 5633 wlmi and have a memory stick which needs exfat to run how can I download exfat on my laptop that has installed fat 32. HELP regards Bob.

  • Application of system recovery

    Hello! I intend to reinstall windows 7 Starter on my netbook: HP Mini 311 I have 3 partitions of hard disk: C: (where is installed the win7) D: (recovery partition) E: (I created this partition for documents and files) I just want to make sure that i