Getting realistic performance expectations.
I am running tests to see if I can use the Oracle Berkeley XML database as a backend to a web application but am running into query response performance limitations. As per the suggestions for performance related questions, I have pulled together answers to the series of questions that need to be addressed, and they are given below. The basic issue at stake, however, is am I being realistic about what I can expect to achieve with the database?
Regards
Geoff Shuetrim
Oracle Berkeley DB XML database performance.
Berkeley DB XML Performance Questionnaire
1. Describe the Performance area that you are measuring? What is the
current performance? What are your performance goals you hope to
achieve?
I am using the database as a back end to a web application that is expected
to field a large number of concurrent queries.
The database scale is described below.
Current performance involves responses to simple queries that involve 1-2
minute turn around (this improves after a few similar queries have been run,
presumably because of caching, but not to a point that is acceptable for
web applications).
Desired performance is for queries to execute in milliseconds rather than
minutes.
2. What Berkeley DB XML Version? Any optional configuration flags
specified? Are you running with any special patches? Please specify?
Berkeley DB XML Version: 2.4.16.1
Configuration flags: enable-java -b 64 prefix=/usr/local/BerkeleyDBXML-2.4.16
No special patches have been applied.
3. What Berkeley DB Version? Any optional configuration flags
specified? Are you running with any special patches? Please Specify.
Berkeley DB Version? 4.6.21
Configuration flags: None. The Berkeley DB was built and installed as part of the
Oracle Berkeley XML database build and installation process.
No special patches have been applied.
4. Processor name, speed and chipset?
Intel Core 2 CPU 6400 @ 2.13 GHz (1066 FSB) (4MB Cache)
5. Operating System and Version?
Ubuntu Linux 8.04 (Hardy) with the 2.6.24-23 generic kernel.
6. Disk Drive Type and speed?
300 GB 7200RPM hard drive.
7. File System Type? (such as EXT2, NTFS, Reiser)
EXT3
8. Physical Memory Available?
Memory: 3.8GB DDR2 SDRAM
9. Are you using Replication (HA) with Berkeley DB XML? If so, please
describe the network you are using, and the number of Replica’s.
No.
10. Are you using a Remote Filesystem (NFS) ? If so, for which
Berkeley DB XML/DB files?
No.
11. What type of mutexes do you have configured? Did you specify
–with-mutex=? Specify what you find inn your config.log, search
for db_cv_mutex?
I did not specify -with-mutex when building the database.
config.log indicates:
db_cv_mutex=POSIX/pthreads/library/x86_64/gcc-assembly
12. Which API are you using (C++, Java, Perl, PHP, Python, other) ?
Which compiler and version?
I am using the Java API.
I am using the gcc 4.2.4 compiler.
I am using the g++ 4.2.4 compiler.
13. If you are using an Application Server or Web Server, please
provide the name and version?
I am using the Tomcat 5.5 application server.
It is not using the Apache Portable Runtime library.
It is being run using a 64 bit version of the Sun Java 1.5 JRE.
14. Please provide your exact Environment Configuration Flags (include
anything specified in you DB_CONFIG file)
I do not have a DB_CONFIG file in the database home directory.
My environment configuration is as follows:
Threaded = true
AllowCreate = true
InitializeLocking = true
ErrorStream = System.err
InitializeCache = true
Cache Size = 1024 * 1024 * 500
InitializeLogging = true
Transactional = false
TrickleCacheWrite = 20
15. Please provide your Container Configuration Flags?
My container configuration is done using the Java API.
The container creation code is:
XmlContainerConfig containerConfig = new XmlContainerConfig();
containerConfig.setStatisticsEnabled(true);
XmlContainer container = xmlManager.createContainer("container",containerConfig);I am guessing that this means that the only flag I have set is the one
that enables recording of statistics to use in query optimization.
I have no other container configuration information to provide.
16. How many XML Containers do you have?
I have one XML container.
The container has 2,729,465 documents.
The container is a node container rather than a wholedoc container.
Minimum document size is around 1Kb.
Maximum document size is around 50Kb.
Average document size is around 2Kb.
I am using document data as part of the XQueries being run. For
example, I condition query results upon the values of attributes
and elements in the stored documents.
The database has the following indexes:
xmlIndexSpecification = dataContainer.getIndexSpecification();
xmlIndexSpecification.replaceDefaultIndex("node-element-presence");
xmlIndexSpecification.addIndex(Constants.XBRLAPINamespace,"fragment","node-element-presence");
xmlIndexSpecification.addIndex(Constants.XBRLAPINamespace,"data","node-element-presence");
xmlIndexSpecification.addIndex(Constants.XBRLAPINamespace,"xptr","node-element-presence");
xmlIndexSpecification.addIndex("","stub","node-attribute-presence");
xmlIndexSpecification.addIndex("","index", "unique-node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XBRL21LinkNamespace,"label","node-element-substring-string");
xmlIndexSpecification.addIndex(Constants.GenericLabelNamespace,"label","node-element-substring-string");
xmlIndexSpecification.addIndex("","name","node-attribute-substring-string");
xmlIndexSpecification.addIndex("","parentIndex", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","uri", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","type", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","targetDocumentURI", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","targetPointerValue", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","absoluteHref", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","id","node-attribute-equality-string");
xmlIndexSpecification.addIndex("","value", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","arcroleURI", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","roleURI", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","name", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","targetNamespace", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","contextRef", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","unitRef", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","scheme", "node-attribute-equality-string");
xmlIndexSpecification.addIndex("","value", "node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XBRL21Namespace,"identifier", "node-element-equality-string");
xmlIndexSpecification.addIndex(Constants.XMLNamespace,"lang","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XLinkNamespace,"label","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XLinkNamespace,"from","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XLinkNamespace,"to","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XLinkNamespace,"type","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XLinkNamespace,"arcrole","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XLinkNamespace,"role","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XLinkNamespace,"label","node-attribute-equality-string");
xmlIndexSpecification.addIndex(Constants.XBRLAPILanguagesNamespace,"language","node-element-presence");
xmlIndexSpecification.addIndex(Constants.XBRLAPILanguagesNamespace,"code","node-element-equality-string");
xmlIndexSpecification.addIndex(Constants.XBRLAPILanguagesNamespace,"value","node-element-equality-string");
xmlIndexSpecification.addIndex(Constants.XBRLAPILanguagesNamespace,"encoding","node-element-equality-string");17. Please describe the shape of one of your typical documents? Please
do this by sending us a skeleton XML document.
The following provides the basic information about the shape of all documents
in the data store.
<ns:fragment xmlns:ns="..." attrs...(about 20 of them)>
<ns:data>
Single element that varies from document to document but that
is rarely more than a few small elements in size and (in some cases)
a lengthy section of string content for the single element.
</ns:data>
</ns:fragment>18. What is the rate of document insertion/update required or
expected? Are you doing partial node updates (via XmlModify) or
replacing the document?
Document insertion rates are not a first order performance criteria.
I do no document modifications using XmlModify.
When doing updates I replace the original document.
19. What is the query rate required/expected?
Not sure how to provide metrics for this but a single web page is
being generated, this can involve hundreds of queries. each of which
should be trivial to execute given the indexing strategy in use.
20. XQuery -- supply some sample queries
1. Please provide the Query Plan
2. Are you using DBXML_INDEX_NODES?
I am using DBXML_INDEX_NODES by default because I
am using a node container rather than a whole document
container.
3. Display the indices you have defined for the specific query.
4. If this is a large query, please consider sending a smaller
query (and query plan) that demonstrates the problem.
Example queries.
1. collection('browser')/*[@parentIndex='none']
<XQuery>
<QueryPlanToAST>
<LevelFilterQP>
<StepQP axis="parent-of-attribute" uri="*" name="*" nodeType="element">
<ValueQP container="browser" index="node-attribute-equality-string" operation="eq" child="parentIndex" value="none"/>
</StepQP>
</LevelFilterQP>
</QueryPlanToAST>
</XQuery>2. collection('browser')/*[@stub]
<XQuery>
<QueryPlanToAST>
<LevelFilterQP>
<StepQP axis="parent-of-attribute" uri="*" name="*" nodeType="element">
<PresenceQP container="browser" index="node-attribute-presence-none" operation="eq" child="stub"/>
</StepQP>
</LevelFilterQP>
</QueryPlanToAST>
</XQuery>3. qplan "collection('browser')/*[@type='org.xbrlapi.impl.ConceptImpl' or @parentIndex='asdfv_3']"
<XQuery>
<QueryPlanToAST>
<LevelFilterQP>
<StepQP axis="parent-of-attribute" uri="*" name="*" nodeType="element">
<UnionQP>
<ValueQP container="browser" index="node-attribute-equality-string" operation="eq" child="type" value="org.xbrlapi.impl.ConceptImpl"/>
<ValueQP container="browser" index="node-attribute-equality-string" operation="eq" child="parentIndex" value="asdfv_3"/>
</UnionQP>
</StepQP>
</LevelFilterQP>
</QueryPlanToAST>
</XQuery>4.
setnamespace xlink http://www.w3.org/1999/xlink
qplan "collection('browser')/*[@uri='http://www.xbrlapi.org/my/uri' and */*[@xlink:type='resource' and @xlink:label='description']]"
<XQuery>
<QueryPlanToAST>
<LevelFilterQP>
<NodePredicateFilterQP uri="" name="#tmp8">
<StepQP axis="parent-of-child" uri="*" name="*" nodeType="element">
<StepQP axis="parent-of-child" uri="*" name="*" nodeType="element">
<NodePredicateFilterQP uri="" name="#tmp1">
<StepQP axis="parent-of-attribute" uri="*" name="*" nodeType="element">
<ValueQP container="browser" index="node-attribute-equality-string" operation="eq" child="label:http://www.w3.org/1999/xlink"
value="description"/>
</StepQP>
<AttributeJoinQP>
<VariableQP name="#tmp1"/>
<ValueQP container="browser" index="node-attribute-equality-string" operation="eq" child="type:http://www.w3.org/1999/xlink"
value="resource"/>
</AttributeJoinQP>
</NodePredicateFilterQP>
</StepQP>
</StepQP>
<AttributeJoinQP>
<VariableQP name="#tmp8"/>
<ValueQP container="browser" index="node-attribute-equality-string" operation="eq" child="uri" value="http://www.xbrlapi.org/my/uri"/>
</AttributeJoinQP>
</NodePredicateFilterQP>
</LevelFilterQP>
</QueryPlanToAST>
</XQuery>21. Are you running with Transactions? If so please provide any
transactions flags you specify with any API calls.
I am not running with transactions.
22. If your application is transactional, are your log files stored on
the same disk as your containers/databases?
The log files are stored on the same disk as the container.
23. Do you use AUTO_COMMIT?
Yes. I think that it is a default feature of the DocumentConfig that
I am using.
24. Please list any non-transactional operations performed?
I do document insertions and I do XQueries.
25. How many threads of control are running? How many threads in read
only mode? How many threads are updating?
One thread is updating. Right now one thread is running queries. I am
not yet testing the web application with concurrent users given the
performance issues faced with a single user.
26. Please include a paragraph describing the performance measurements
you have made. Please specifically list any Berkeley DB operations
where the performance is currently insufficient.
I have loaded approximately 7 GB data into the container and then tried
to run the web application using that data. This involves running a broad
range of very simple queries, all of which are expected to be supported
by indexes to ensure that they do not require XML document traversal activity.
Querying performance is insufficient, with even the most basic queries
taking several minutes to complete.
27. What performance level do you hope to achieve?
I hope to be able to run a web application that simultaneously handles
page requests from hundreds of users, each of which involves a large
number of database queries.
28. Please send us the output of the following db_stat utility commands
after your application has been running under "normal" load for some
period of time:
% db_stat -h database environment -c
1038 Last allocated locker ID
0x7fffffff Current maximum unused locker ID
9 Number of lock modes
1000 Maximum number of locks possible
1000 Maximum number of lockers possible
1000 Maximum number of lock objects possible
155 Number of current locks
157 Maximum number of locks at any one time
200 Number of current lockers
200 Maximum number of lockers at any one time
13 Number of current lock objects
17 Maximum number of lock objects at any one time
1566M Total number of locks requested (1566626558)
1566M Total number of locks released (1566626403)
0 Total number of locks upgraded
852 Total number of locks downgraded
3 Lock requests not available due to conflicts, for which we waited
0 Lock requests not available due to conflicts, for which we did not wait
0 Number of deadlocks
0 Lock timeout value
0 Number of locks that have timed out
0 Transaction timeout value
0 Number of transactions that have timed out
712KB The size of the lock region
21807 The number of region locks that required waiting (0%)
% db_stat -h database environment -l
0x40988 Log magic number
13 Log version number
31KB 256B Log record cache size
0 Log file mode
10Mb Current log file size
0 Records entered into the log
28B Log bytes written
28B Log bytes written since last checkpoint
1 Total log file I/O writes
0 Total log file I/O writes due to overflow
1 Total log file flushes
0 Total log file I/O reads
1 Current log file number
28 Current log file offset
1 On-disk log file number
28 On-disk log file offset
1 Maximum commits in a log flush
0 Minimum commits in a log flush
96KB Log region size
0 The number of region locks that required waiting (0%)
% db_stat -h database environment -m
500MB Total cache size
1 Number of caches
1 Maximum number of caches
500MB Pool individual cache size
0 Maximum memory-mapped file size
0 Maximum open file descriptors
0 Maximum sequential buffer writes
0 Sleep after writing maximum sequential buffers
0 Requested pages mapped into the process' address space
1749M Requested pages found in the cache (99%)
722001 Requested pages not found in the cache
911092 Pages created in the cache
722000 Pages read into the cache
4175142 Pages written from the cache to the backing file
1550811 Clean pages forced from the cache
19568 Dirty pages forced from the cache
3 Dirty pages written by trickle-sync thread
62571 Current total page count
62571 Current clean page count
0 Current dirty page count
65537 Number of hash buckets used for page location
1751M Total number of times hash chains searched for a page (1751388600)
8 The longest hash chain searched for a page
3126M Total number of hash chain entries checked for page (3126038333)
4535 The number of hash bucket locks that required waiting (0%)
278 The maximum number of times any hash bucket lock was waited for (0%)
1 The number of region locks that required waiting (0%)
0 The number of buffers frozen
0 The number of buffers thawed
0 The number of frozen buffers freed
1633189 The number of page allocations
4301013 The number of hash buckets examined during allocations
259 The maximum number of hash buckets examined for an allocation
1570522 The number of pages examined during allocations
1 The max number of pages examined for an allocation
184 Threads waited on page I/O
Pool File: browser
8192 Page size
0 Requested pages mapped into the process' address space
1749M Requested pages found in the cache (99%)
722001 Requested pages not found in the cache
911092 Pages created in the cache
722000 Pages read into the cache
4175142 Pages written from the cache to the backing file
% db_stat -h database environment -r
Not applicable.
% db_stat -h database environment -t
Not applicable.
vmstat
r b swpd free buff cache si so bi bo in cs us sy id wa
1 4 40332 773112 27196 1448196 0 0 173 239 64 1365 19 4 72 5
iostat
Linux 2.6.24-23-generic (dell) 06/02/09
avg-cpu: %user %nice %system %iowait %steal %idle
18.37 0.01 3.75 5.67 0.00 72.20
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 72.77 794.79 1048.35 5376284 7091504
29. Are there any other significant applications running on this
system? Are you using Berkeley DB outside of Berkeley DB XML?
Please describe the application?
No other significant applications are running on the system.
I am not using Berkeley DB outside of Berkeley DB XML.
The application is a web application that organises the data in
the stored documents into hypercubes that users can slice/dice and analyse.
Edited by: Geoff Shuetrim on Feb 7, 2009 2:23 PM to correct the appearance of the query plans.
Hi Geoff,
Thanks for filling out the performance questionnaire. Unfortunately the forum software seems to have destroyed some of your queries - you might want to use \[code\] and \[code\] to markup your queries and query plans next time.
Geoff Shuetrim wrote:
Current performance involves responses to simple queries that involve 1-2
minute turn around (this improves after a few similar queries have been run,
presumably because of caching, but not to a point that is acceptable for
web applications).
Desired performance is for queries to execute in milliseconds rather than
minutes.I think that this is a reasonable expectation in most cases.
14. Please provide your exact Environment Configuration Flags (include
anything specified in you DB_CONFIG file)
I do not have a DB_CONFIG file in the database home directory.
My environment configuration is as follows:
Threaded = true
AllowCreate = true
InitializeLocking = true
ErrorStream = System.err
InitializeCache = true
Cache Size = 1024 * 1024 * 500
InitializeLogging = true
Transactional = false
TrickleCacheWrite = 20If you are performing concurrent reads and writes, you need to enable transactions in the both the environment and the container.
Example queries.
1. collection('browser')/*[@parentIndex='none']
<XQuery>
<QueryPlanToAST>
<LevelFilterQP>
<StepQP axis="parent-of-attribute" uri="*" name="*" nodeType="element">
<ValueQP container="browser" index="node-attribute-equality-string" operation="eq" child="parentIndex" value="none"/>
</StepQP>
</LevelFilterQP>
</QueryPlanToAST>
</XQuery>
I have two initial observations about this query:
1) It looks like it could return a lot of results - a query that returns a lot of results will always be slow. If you only want a subset of the results, use lazy evalulation, or put an explicit call to the subsequence() function in the query.
2) An explicit element name with an index on it often performs faster than a "*" step. I think you'll get faster query execution if you specify the document element name rather than "*", and then add a "node-element-presence" index on it.
3) Generally descendant axis is faster than child axis. If you just need the document rather than the document (root) element, you might find that this query is a little faster (any document with a "parentIndex" attribute whose value is "none"):
collection()[descendant::*/@parentIndex='none']Similar observations apply to the other queries you posted.
Get back to me if you're still having problems with specific queries.
John
Similar Messages
-
How to setup airport time capsule to get better performance?
I need to set up my wireless system with my new Airport time capsule 3T as primary base station to get better performance, and If I have a cable modem as primary device to get the signal (5MB) from the ISP then my network has one, Macbook pro, Macbook air, mac mini, 2 ipad's, 2 iphones, but neither of them is connected all time.
What is the best way to do that?
What wifi channel need choose to?What is the best way to do that?
Use ethernet.. performance of wireless is never as good as ethernet.
What wifi channel need choose to?
There is no such thing as the best channel..
Leave everything auto.. and see if it gives you full download speed.
Use 5ghz.. and keep everything up close to the TC for the best wireless speed.
If you are far away it will drop back to 2.4ghz which is slower.
Once you reach the internet speed nothing is going to help it go faster so you are worrying about nothing. -
How to get a performing equalizer in iTunes
Hello
How to get a performing equalizer in iTunes?Try downloading and reinstalling the latest version of iTunes.
If that doesn't help, give us a little more information about the tracks that are having the problem and what you are seeing. -
How to get better perform here
hi there,
bellow code is using with in the loop. how can i modify to get better performance.
SELECT knumv kposn kwert FROM konv
INTO CORRESPONDING FIELDS OF lt_konv
WHERE knumv EQ lt_output-knumv
AND kposn EQ lt_output-posnr
AND kschl EQ 'VPRS'.
COLLECT lt_konv.
ENDSELECT.
thx in adv.the better solution for the select statement whould be to use the aggreagte function sum for the field kwert:
SELECT knumv kposn sum(kwert)
FROM konv
INTO CORRESPONDING FIELDS OF table lt_konv
WHERE knumv EQ lt_output-knumv
AND kposn EQ lt_output-posnr
AND kschl EQ 'VPRS'.
The select is inside the loop an lt_output.
Aggregate functions and FOR ALL ENTRIES can not be combined, the
FOR ALL ENTRIES is a select distinct !!!
So you must leave the loop around the select and you can't use the FOR ALL ENTRIES, but this is o.k.,
Siegfried -
I am getting an un expected error message when updating the setting to "extend network". Is there an obvious setting I may be missing? Cisco router being used.
If you are trying to "extend" using wireless only, you may not be aware that Apple designed the "extend" feature as a proprietary setting to only work with other Apple routers.
It is extremely unlikely that this will work with a Cisco router.
If your plans call for connecting the AirPort Express to the Cisco router using a wired Ethernet connection, it should be possible to configure the Express that way. -
Getting good performance from Amazon AWS EBS disks
Hi, I am new here, so please let me know if I should be posting somewhere else.
We are using the Amazon cloud and striped EBS disks for Oracle DB 11g. We have done many tests trying to get good performance from the disks but it is still lacking. I am looking for some Oracle best practices for how to best set up the disks in Amazon. Or if any of you have suggestions of good parameters.
Thanks,
-tomOracle talked much about cloud and they did very little, Oracle cloud computing is amateur for performance testing.
Oracle deployed one EBS AMI (Oracle Enterprise Database) to APAC (Asia Pacific region), later on they withdrew that AMI, any one used that AMI to build an infrastructure they couldn't re launch that AMI.
By now Oracle has no one single EBS AMI in Asia Pacific region!
As you can see from this forum, it's not monitored by Oracle cloud people, many times we tried to contact them for urgent AMI we needed they simply don't reply back.
You could find much documents, presentations and nice animations talking about Oracle cloud but oracle has nothing to do on Amazon cloud so far, so try to find alternatives.
Thanks,
Fadi. -
Get the performance data on to DCNM Web client summary page
Dear all,
Objective: To show my Nexus swicthes performance on DCNM summary web page.
I had install full evaluation package of DCNM 6.2 Server SAN, LAN. This installtion is for my PoC on 2x Nexus swiches.
I was able to login to the web browser and on the summary page, i dont see any performance on CPU, SAN Host Port, SAN Storage Port.
I did read up and created Flows on my Nexus swicthes. But still no performance shows in DCNM page.
At the DCNM web, Admin/Status, i tried to click Start button on Performance Collector but failed.
Hope someone help me to get the performance status shown on my DCNM page.
Note: I am very confuse on the Performance subject.We have faced a similar issue , Oracle have recommended to install the following process to fix this issue ..
Steps involved :
Necessary roles for FDM Web on Windows 2008
The first step is to launch the Windows 2008 Server Manager as Shown. Click the "Add Roles" link.
The first role necessary for the FDM Web Server to function is the Application Server Role
Selecting this role returns a message box alerting you that additional features are required for installation of the role. Click the Add Required Features Button.
The second required role is the Web Server (IIS) Role which installs the IIS components.
The next screen is an Introduction to the Application Server Role. Click Next to continue.
The Application Server Foundation is selected by default. The Web Server (IIS) Support Role Service is also required.
Choose to add the Required Role Services
The next screen is an Introduction to the Web Server (IIS) Role. Click Next.
All default selected options should be checked along with the "IIS 6 Management Compatibility" option which will install the IIS 6 Metabase Compatibility required for FDM.
Review all selected options and click "Install" to install the components.
Installation is Successful. Click Close to finish. -
Getting slow performance with -webkit-box-shadow [2.5.1]
Hello, I just updated to the lastest Air version and I'm getting slow performance on my app when using this new css3 property just added, anyone else has the same problem?
Thanks for your reply. I have actually found a way to fix the problem and it had nothing to do with the subvi's in my application (well almost nothing . The first thing I tried doing was taking out the display local variables which displayed lockin data on 3 screens of my application into 1 separate while loop and replacing the Lockin driver code with global variables which had only the data I wanted to display. This helped a little bit but here's what fixed my problem completely.
When I created 2 lockin SubVIs I forgot to go into File->VI Properties->Execution and there select Time critical priority and in the other option drop down list: data acquisition.
As soon as I did that in the 2 subvi's the lockins actually began performing in real time and now it takes milliseconds to detect the signal and to update the displays.
I hope this helps. I'm surprised the NI Tech rep I spoke with, hasn't recommended this even though I asked if there are perhaps some sort of compiling or priority options in LabView.
Well I'm happy since my problem is now fixed, I just need to get a little more RAM now. -
I'm getting poor performance from my apple TV, will plugging in my airport express via ethernet to apple tv increase its performance (poor wi-fi signal)
Yes, though it is less ideal than what I suggested earlier. You would need to place your AirPort Express in a location approximately midway between your AirPort Extreme Base Station and the TV. Then, using AirPort Utility, configure it to "extend a wireless network".
It may help. Bear in mind the signal thus "extended" by the Express can only be as good as the signal it can receive from the Extreme. That is the reason for selecting its appoximate midway location.
Read about it here: http://support.apple.com/kb/HT4145
Scroll down to "Wirelessly Extended Network (802.11n)" for a picture.
This solution requires an all-Apple wireless network. No third party stuff.
You mentioned using Ethernet. That would be a better idea. Scroll down to "Roaming Network (Ethernet-connected Wi-Fi base stations)" for a picture. In your case, the longer the Ethernet cable - hence the closer you can move the Express to the TV - the better -
Which one will get better performance when traversing an ArrayList, iterat
hi, everyone,
Which one will get better performance when traversing an ArrayList, iterators, or index(get(i))?
Any reply would be valuable.
Thank you in advance.Use the iterator, or a foreach loop, which is just syntactic sugar over an iterator. The cases where there is a noticeable difference will be extremely rare. You would only use get() if you actually measured a bottleneck, changed it, re-tested, and found significant improvement. An iterator will give O(n) time for iterating over any collection. Using get() only works on Lists, and for a LinkedList, gives O(n^2).
-
Any general tips on getting better performance out of multi table insert?
I have been struggling with coding a multi table insert which is the first time I ever use one and my Oracle skills are pretty poor in general so now that the query is built and works fine I am sad to see its quite slow.
I have checked numerous articles on optimizing but the things I try dont seem to get me much better performance.
First let me describe my scenario to see if you agree that my performance is slow...
its an insert all command, which ends up inserting into 5 separate tables, conditionally (at least 4 inserts, sometimes 5 but the fifth is the smallest table). Some stats on these tables as follows:
Source table: 5.3M rows, ~150 columns wide. Parallel degree 4. everything else default.
Target table 1: 0 rows, 27 columns wide. Parallel 4. everything else default.
Target table 2: 0 rows, 63 columns wide. Parallel 4. default.
Target table 3: 0 rows, 33 columns wide. Parallel 4. default.
Target table 4: 0 rows, 9 columns wide. Parallel 4. default.
Target table 5: 0 rows, 13 columns wide. Parallel 4. default.
The parallelism is just about the only customization I myself have done. Why 4? I dont know it's pretty arbitrary to be honest.
Indexes?
Table 1 has 3 index + PK.
Table 2 has 0 index + FK + PK.
Table 3 has 4 index + FK + PK
Table 4 has 3 index + FK + PK
Table 5 has 4 index + FK + PK
None of the indexes are anything crazy, maybe 3 or 4 of all of them are on multiple columns, 2-3 max. The rest are on single columns.
The query itself looks something like this:
insert /*+ append */ all
when 1=1 then
into table1 (...) values (...)
into table2 (...) values (...)
when a=b then
into table3 (...) values (...)
when a=c then
into table3 (...) values (...)
when p=q then
into table4(...) values (...)
when x=y then
into table5(...) values (...)
select .... from source_table
Hints I tried are with append, without append, and parallel (though adding parallel seemed to make the query behave in serial, according to my session browser).
Now for the performance:
It does about 8,000 rows per minute on table1. So that means it should also have that much in table2, table3 and table4, and then a subset of that in table5.
Does that seem normal or am I expecting too much?
I find articles talking about millions of rows per minute... Obviously i dont think I can achieve that much... but maybe 30k or so on each table is a reasonable goal?
If it seems my performance is slow, what else do you think I should try? Is there any information I may try to get to see if maybe its a poorly configured database for this?
P.S. Is it possible I can run this so that it commits every x rows or something? I had the heartbreaking event of a network issue giving me this sudden "ora-25402: transaction must roll back" after it was running for 3.5 hours. So I lost all the progress it made... have to start over. plus i wonder if the sheer amount of data being queued for commit/rollback is causing some of the problem?
Edited by: trant on Jun 27, 2011 9:29 PMLooks like there are about 54 sessions on my database, 7 of the sessions belong to me (2 taken by TOAD and 4 by my parallel slave sessions and 1 by the master of those 4)
In v$session_event there are 546 rows, if i filter it to the SIDs of my current session and order my micro_wait_time desc:
510 events in waitclass Other 30670 9161 329759 10.75 196 3297590639 1736664284 1893977003 0 Other
512 events in waitclass Other 32428 10920 329728 10.17 196 3297276553 1736664284 1893977003 0 Other
243 events in waitclass Other 21513 5 329594 15.32 196 3295935977 1736664284 1893977003 0 Other
223 events in waitclass Other 21570 52 329590 15.28 196 3295898897 1736664284 1893977003 0 Other
241 row cache lock 1273669 0 42137 0.03 267 421374408 1714089451 3875070507 4 Concurrency
241 events in waitclass Other 614793 0 34266 0.06 12 342660764 1736664284 1893977003 0 Other
241 db file sequential read 13323 0 3948 0.3 13 39475015 2652584166 1740759767 8 User I/O
241 SQL*Net message from client 7 0 1608 229.65 1566 16075283 1421975091 2723168908 6 Idle
241 log file switch completion 83 0 459 5.54 73 4594763 3834950329 3290255840 2 Configuration
241 gc current grant 2-way 5023 0 159 0.03 0 1591377 2685450749 3871361733 11 Cluster
241 os thread startup 4 0 55 13.82 26 552895 86156091 3875070507 4 Concurrency
241 enq: HW - contention 574 0 38 0.07 0 378395 1645217925 3290255840 2 Configuration
512 PX Deq: Execution Msg 3 0 28 9.45 28 283374 98582416 2723168908 6 Idle
243 PX Deq: Execution Msg 3 0 27 9.1 27 272983 98582416 2723168908 6 Idle
223 PX Deq: Execution Msg 3 0 25 8.26 24 247673 98582416 2723168908 6 Idle
510 PX Deq: Execution Msg 3 0 24 7.86 23 235777 98582416 2723168908 6 Idle
243 PX Deq Credit: need buffer 1 0 17 17.2 17 171964 2267953574 2723168908 6 Idle
223 PX Deq Credit: need buffer 1 0 16 15.92 16 159230 2267953574 2723168908 6 Idle
512 PX Deq Credit: need buffer 1 0 16 15.84 16 158420 2267953574 2723168908 6 Idle
510 direct path read 360 0 15 0.04 4 153411 3926164927 1740759767 8 User I/O
243 direct path read 352 0 13 0.04 6 134188 3926164927 1740759767 8 User I/O
223 direct path read 359 0 13 0.04 5 129859 3926164927 1740759767 8 User I/O
241 PX Deq: Execute Reply 6 0 13 2.12 10 127246 2599037852 2723168908 6 Idle
510 PX Deq Credit: need buffer 1 0 12 12.28 12 122777 2267953574 2723168908 6 Idle
512 direct path read 351 0 12 0.03 5 121579 3926164927 1740759767 8 User I/O
241 PX Deq: Parse Reply 7 0 9 1.28 6 89348 4255662421 2723168908 6 Idle
241 SQL*Net break/reset to client 2 0 6 2.91 6 58253 1963888671 4217450380 1 Application
241 log file sync 1 0 5 5.14 5 51417 1328744198 3386400367 5 Commit
510 cursor: pin S wait on X 3 2 2 0.83 1 24922 1729366244 3875070507 4 Concurrency
512 cursor: pin S wait on X 2 2 2 1.07 1 21407 1729366244 3875070507 4 Concurrency
243 cursor: pin S wait on X 2 2 2 1.06 1 21251 1729366244 3875070507 4 Concurrency
241 library cache lock 29 0 1 0.05 0 13228 916468430 3875070507 4 Concurrency
241 PX Deq: Join ACK 4 0 0 0.07 0 2789 4205438796 2723168908 6 Idle
241 SQL*Net more data from client 6 0 0 0.04 0 2474 3530226808 2000153315 7 Network
241 gc current block 2-way 5 0 0 0.04 0 2090 111015833 3871361733 11 Cluster
241 enq: KO - fast object checkpoint 4 0 0 0.04 0 1735 4205197519 4217450380 1 Application
241 gc current grant busy 4 0 0 0.03 0 1337 2277737081 3871361733 11 Cluster
241 gc cr block 2-way 1 0 0 0.06 0 586 737661873 3871361733 11 Cluster
223 db file sequential read 1 0 0 0.05 0 461 2652584166 1740759767 8 User I/O
223 gc current block 2-way 1 0 0 0.05 0 452 111015833 3871361733 11 Cluster
241 latch: row cache objects 2 0 0 0.02 0 434 1117386924 3875070507 4 Concurrency
241 enq: TM - contention 1 0 0 0.04 0 379 668627480 4217450380 1 Application
512 PX Deq: Msg Fragment 4 0 0 0.01 0 269 77145095 2723168908 6 Idle
241 latch: library cache 3 0 0 0.01 0 243 589947255 3875070507 4 Concurrency
510 PX Deq: Msg Fragment 3 0 0 0.01 0 215 77145095 2723168908 6 Idle
223 PX Deq: Msg Fragment 4 0 0 0 0 145 77145095 2723168908 6 Idle
241 buffer busy waits 1 0 0 0.01 0 142 2161531084 3875070507 4 Concurrency
243 PX Deq: Msg Fragment 2 0 0 0 0 84 77145095 2723168908 6 Idle
241 latch: cache buffers chains 4 0 0 0 0 73 2779959231 3875070507 4 Concurrency
241 SQL*Net message to client 7 0 0 0 0 51 2067390145 2000153315 7 Network
(yikes, is there a way to wrap that in equivalent of other forums' tag?)
v$session_wait;
223 835 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 10 WAITING
241 22819 row cache lock cache id 13 000000000000000D mode 0 00 request 5 0000000000000005 3875070507 4 Concurrency -1 0 WAITED SHORT TIME
243 747 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 7 WAITING
510 10729 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 2 WAITING
512 12718 PX Deq Credit: send blkd sleeptime/senderid 268697599 000000001003FFFF passes 1 0000000000000001 qref 0 00 1893977003 0 Other 0 4 WAITING
v$sess_io:
223 0 5779 5741 0 0
241 38773810 2544298 15107 27274891 0
243 0 5702 5688 0 0
510 0 5729 5724 0 0
512 0 5682 5678 0 0 -
Not getting enough performance out of Msi GT60 0NC
Hello there guys! Since I've got my laptop I have been getting the feeling that I am not getting enough power out of my toy. I dont know if its me who have too big expectations about this laptop or it really should be performing better?:( I have done hours of research regarding drivers, graphic setup and not at least overclocking which seems to raise the performance quite a bit but it easily gets unstable. I am using Msi's preinstalled drivers as it seems like they give the best performance so far. I have also installed the modded Firmware from https://forum-en.msi.com/index.php?topic=162629.0 which works better than the original one from Msi. But still, i hear a lot of people playing demanding games on ultra with fps around 50-60. In bf3 I get around 40-60 on High with shadow on medium and post processing off, anti-aliasing off. Turbo is on + overclock. The performance in Gw2 is even worse.
So here is my question: am I expecting too much from the laptop or can I do something to improve it and make it run like a charm? Another question would be if it is possible to change powervoltage to get a higher overclock?
I would very much like to hear from u guys how your msi gt60 is performing:)
Best regards, Mathias KanstrupQuote from: zipper.sippola on 18-September-13, 17:57:49
Same here, Gt70 0NE + 680M; overclocking GPU core causes clockdowns so gains are minimal. Overclocking memory is successful upto about 2500MHz but gains are small as the memory isn't the restricting factor in preformance - or the effect is just minuscule. So mostly 2 to 8 % in benchmarks, max.
With extreme air cooling and a modified VBios, it's possible to get up to around 15%......I know this first hand.
I just don't care to do it since there's little point in pushing the hardware that hard regularly. Yes, it's great for bragging rights, but it's not useful for long term use unfortunately.
Overclocking the memory in the GTX675M might help a bit more than in the 680M. I'm not sure, I haven't really followed up on the other cards. -
Upgraded CPU with AE CC and I get less performance!
Hello everyone!
I recently started working with the CC suite.
My configuration is based on a 1366 motherboard and I have 24 GBs of RAM.
Now when I first started using AE, my I7 920 worked really well but I wanted to see how much faster rendering times I could get by upgrading to a i7 990x.
Well, it seems that my rendering times have nearly doubled since I installed my 990x!
If I don't use multiprocessing ON when rendering, one of my projects takes 16 minutes to render (used to take 7 and a half), and trying different settings under multiprocessing gives me variable results.
At best I can get close to my previous (i7 920) fastest rendering time. Which really makes no sense! The 990x has 6 cores and a higher frequency!
The template I am using as a test uses no weird plug ins, just prerendered flares and motion blur.
I also noticed that on my windows experience index, my CPU now has a score of 6.9. Now that can't be right?
My mobo is a EVGA SLI Classified and my GPU is a 660 GTX.
Any help is apreciated, whether it's 990x experience or multiprocessing settings for 6 cores and 24GBs of RAM.
Thank you.More cores = increased parallelization = less effective cycles per core, meaning any operation that is only mildly multi-threaded or not at all will run on just one core and potentially feel/ be slower since the actual per core clock is determined by a multitude of factors that the processor and its features like TurboBoost are trying to figure out at runtime. As a result, it could decide to split tasks so unfavorably, it cycles through all cores every x number of clock cycles, but each core only then blips for a nanosecond. Or on the other hand it locks everything to just one core. Add to that whatever the operating system manages and you could effectively end up with only a fraction of your theoretical processing power on whatever is sued as the primary processing core. And if you didn't already guess it: Surprise, surprise, temporal operations in AE like calculating motion blur are mostly single-threaded because they require linear progression and evaluation of multiple states in a given slice of time. Likewise, you could be using specific CoDecs, your I/O performance could suck and a million otehr things could go wrong. This of course is a crude simplification, but you get the picture. Overall, just getting a new machine and expecting AE to do miracles is just slightly naive (no offense). There is simply too many things to consider and without actualyl knowing any hard facts like what comp settings, render settings and so on you actualyl use, nobody can realyl know. We could even go so far and just assume that you render to a slow external USB drive and then what you see would probably even be toatlly expected/ expectable.
Mylenium -
Not getting optimal performance out of premiere Pro CC with New Mac Pro
I have just purchased a new mac pro- 8core 64gb of RAM, and D700 graphics cards. I say I'm not getting full optimized performance because my machine will not playback 4k footage at full resolution. Should it? I looked into the package contents of Premiere Pro and notive that the D700 graphics cards were not listed under supported cards. If I type those in will that fix the issue?
No it wont. No editing software out right now will play back 4K media such as Red at full resolution. The latency for processing the codecs is just to high right now. Redcine X Pro can with Red if you have the GPU accelerated Debayering version. Until that decoding is done on the GPU's in the editing applications, you wont see the full res playback most likely. I wouldn't expect the Red Debayering done at the GPU's in Adobe for a while since Red is still refining it.
Eric
ADK -
How to get low performances alert for Hyper-v Host ON scom
Hello Expert,
We have to implement a scenario VM Live migration which involved (SCOM,SCVMM,SCORCH Parts).
where SCOM parts will monitor the performances of SCVMM 's Hyper-V hosts and VMs running the within the Hyper-v hosts.
when the VMs utilization exceed the threshold and then scom monitor checks the performances of Running Hyper-v Hosts ,then using SCORCH automation ,VMs are moved to one of the best performances the Hyper-v hosts.
To implement this ,I have integrated SCOM 2012 R2 AND SCVMM 2012 R2 AND enabled the PRO Tips.
but don't know how to get alerts and configured related to performances of VMs and Hyper-v host.
What will be next needed to achieved this from SCOM PARTS.
Thanks and Regards
RICHA KMHi,
In addition, hope the management pack for Hyper-v 2012 can be helpful for you, please download and import it to your management group:
http://www.microsoft.com/en-us/download/details.aspx?id=36438
Regards,
Yan Li
Regards, Yan Li
Maybe you are looking for
-
SQL server service and SQL agent service
Hi all. If I am going to use a Domain User to start SQl server service and SQL agent service, does the domain user need to be SYSADMIN ????
-
Hi friends, I have just started working on Oracle discoverer 9.0.4. I have already created the normal workbooks and distribute the reports using discoverer viewer. But I want to know that How I can create the "scheduled workbooks". I have found about
-
How to fix the signal from the microphone to the computer when recording through an interface in logic pro? Every time i record and playback i get poor signal and a lot of fuzz.. how can i fix this problem?
-
I'm a Project Manager, and creating all Project Documents. Has anyone created aRisk Management Document for an HR Implementation Project ,and can share it with me? Thanks a lot in Advance Rachel
-
Data to be deleted from cube conditionally
Hi, We are facing a problem in maintaining data from ODS to CUBE. Actually some data is loaded in cube and agian the same set is to be rectified which needed delta. The DTP has been created as delta loading . but every time data is loaded the total d