Search Results

Search found 20031 results on 802 pages for 'full outer join'.

Page 36/802 | < Previous Page | 32 33 34 35 36 37 38 39 40 41 42 43  | Next Page >

  • Developing Schema Compare for Oracle (Part 6): 9i Query Performance

    - by Simon Cooper
    All throughout the EAP and beta versions of Schema Compare for Oracle, our main request was support for Oracle 9i. After releasing version 1.0 with support for 10g and 11g, our next step was then to get version 1.1 of SCfO out with support for 9i. However, there were some significant problems that we had to overcome first. This post will concentrate on query execution time. When we first tested SCfO on a 9i server, after accounting for various changes to the data dictionary, we found that database registration was taking a long time. And I mean a looooooong time. The same database that on 10g or 11g would take a couple of minutes to register would be taking upwards of 30 mins on 9i. Obviously, this is not ideal, so a poke around the query execution plans was required. As an example, let's take the table population query - the one that reads ALL_TABLES and joins it with a few other dictionary views to get us back our list of tables. On 10g, this query takes 5.6 seconds. On 9i, it takes 89.47 seconds. The difference in execution plan is even more dramatic - here's the (edited) execution plan on 10g: -------------------------------------------------------------------------------| Id | Operation | Name | Bytes | Cost |-------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 108K| 939 || 1 | SORT ORDER BY | | 108K| 939 || 2 | NESTED LOOPS OUTER | | 108K| 938 ||* 3 | HASH JOIN RIGHT OUTER | | 103K| 762 || 4 | VIEW | ALL_EXTERNAL_LOCATIONS | 2058 | 3 ||* 20 | HASH JOIN RIGHT OUTER | | 73472 | 759 || 21 | VIEW | ALL_EXTERNAL_TABLES | 2097 | 3 ||* 34 | HASH JOIN RIGHT OUTER | | 39920 | 755 || 35 | VIEW | ALL_MVIEWS | 51 | 7 || 58 | NESTED LOOPS OUTER | | 39104 | 748 || 59 | VIEW | ALL_TABLES | 6704 | 668 || 89 | VIEW PUSHED PREDICATE | ALL_TAB_COMMENTS | 2025 | 5 || 106 | VIEW | ALL_PART_TABLES | 277 | 11 |------------------------------------------------------------------------------- And the same query on 9i: -------------------------------------------------------------------------------| Id | Operation | Name | Bytes | Cost |-------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 16P| 55G|| 1 | SORT ORDER BY | | 16P| 55G|| 2 | NESTED LOOPS OUTER | | 16P| 862M|| 3 | NESTED LOOPS OUTER | | 5251G| 992K|| 4 | NESTED LOOPS OUTER | | 4243M| 2578 || 5 | NESTED LOOPS OUTER | | 2669K| 1440 ||* 6 | HASH JOIN OUTER | | 398K| 302 || 7 | VIEW | ALL_TABLES | 342K| 276 || 29 | VIEW | ALL_MVIEWS | 51 | 20 ||* 50 | VIEW PUSHED PREDICATE | ALL_TAB_COMMENTS | 2043 | ||* 66 | VIEW PUSHED PREDICATE | ALL_EXTERNAL_TABLES | 1777K| ||* 80 | VIEW PUSHED PREDICATE | ALL_EXTERNAL_LOCATIONS | 1744K| ||* 96 | VIEW | ALL_PART_TABLES | 852K| |------------------------------------------------------------------------------- Have a look at the cost column. 10g's overall query cost is 939, and 9i is 55,000,000,000 (or more precisely, 55,496,472,769). It's also having to process far more data. What on earth could be causing this huge difference in query cost? After trawling through the '10g New Features' documentation, we found item 1.9.2.21. Before 10g, Oracle advised that you do not collect statistics on data dictionary objects. From 10g, it advised that you do collect statistics on the data dictionary; for our queries, Oracle therefore knows what sort of data is in the dictionary tables, and so can generate an efficient execution plan. On 9i, no statistics are present on the system tables, so Oracle has to use the Rule Based Optimizer, which turns most LEFT JOINs into nested loops. If we force 9i to use hash joins, like 10g, we get a much better plan: -------------------------------------------------------------------------------| Id | Operation | Name | Bytes | Cost |-------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 7587K| 3704 || 1 | SORT ORDER BY | | 7587K| 3704 ||* 2 | HASH JOIN OUTER | | 7587K| 822 ||* 3 | HASH JOIN OUTER | | 5262K| 616 ||* 4 | HASH JOIN OUTER | | 2980K| 465 ||* 5 | HASH JOIN OUTER | | 710K| 432 ||* 6 | HASH JOIN OUTER | | 398K| 302 || 7 | VIEW | ALL_TABLES | 342K| 276 || 29 | VIEW | ALL_MVIEWS | 51 | 20 || 50 | VIEW | ALL_PART_TABLES | 852K| 104 || 78 | VIEW | ALL_TAB_COMMENTS | 2043 | 14 || 93 | VIEW | ALL_EXTERNAL_LOCATIONS | 1744K| 31 || 106 | VIEW | ALL_EXTERNAL_TABLES | 1777K| 28 |------------------------------------------------------------------------------- That's much more like it. This drops the execution time down to 24 seconds. Not as good as 10g, but still an improvement. There are still several problems with this, however. 10g introduced a new join method - a right outer hash join (used in the first execution plan). The 9i query optimizer doesn't have this option available, so forcing a hash join means it has to hash the ALL_TABLES table, and furthermore re-hash it for every hash join in the execution plan; this could be thousands and thousands of rows. And although forcing hash joins somewhat alleviates this problem on our test systems, there's no guarantee that this will improve the execution time on customers' systems; it may even increase the time it takes (say, if all their tables are partitioned, or they've got a lot of materialized views). Ideally, we would want a solution that provides a speedup whatever the input. To try and get some ideas, we asked some oracle performance specialists to see if they had any ideas or tips. Their recommendation was to add a hidden hook into the product that allowed users to specify their own query hints, or even rewrite the queries entirely. However, we would prefer not to take that approach; as well as a lot of new infrastructure & a rewrite of the population code, it would have meant that any users of 9i would have to spend some time optimizing it to get it working on their system before they could use the product. Another approach was needed. All our population queries have a very specific pattern - a base table provides most of the information we need (ALL_TABLES for tables, or ALL_TAB_COLS for columns) and we do a left join to extra subsidiary tables that fill in gaps (for instance, ALL_PART_TABLES for partition information). All the left joins use the same set of columns to join on (typically the object owner & name), so we could re-use the hash information for each join, rather than re-hashing the same columns for every join. To allow us to do this, along with various other performance improvements that could be done for the specific query pattern we were using, we read all the tables individually and do a hash join on the client. Fortunately, this 'pure' algorithmic problem is the kind that can be very well optimized for expected real-world situations; as well as storing row data we're not using in the hash key on disk, we use very specific memory-efficient data structures to store all the information we need. This allows us to achieve a database population time that is as fast as on 10g, and even (in some situations) slightly faster, and a memory overhead of roughly 150 bytes per row of data in the result set (for schemas with 10,000 tables in that means an extra 1.4MB memory being used during population). Next: fun with the 9i dictionary views.

    Read the article

  • This November, Join Me in Stockholm and Amsterdam

    - by Adam Machanic
    Late last year, I was invited by Raoul Illyés, a SQL Server MVP from Denmark, to present a precon at the 2013 edition of SQLRally Nordic. I agreed and decided to skip the US PASS Summit this year and instead visit an area of Europe I've never seen before. A bonus came a while later when I learned that there is another SQLRally in Europe that same week: SQLRally Amsterdam. Things worked out in just the right way and today I'm happy to announce that I'll be speaking at both events, back-to-back. Should...(read more)

    Read the article

  • Red Gate join the SSIS custom component club

    I recently noticed that Red Gate have launched themselves into the SSIS component market by releasing a new Data Cleanser component, albeit in beta for now. It seems to be quite a simple component, bringing together several features that you can find elsewhere, but with a suitable level  polish that you’d expect from them. String operations include find and replace with regular expressions, case formatting and trim, all of which are available today in one form or another, but will the RedGate factor appeal to people? Benefits include ease of use, all operations in one place, versus installing a custom component which many organisations do not like. I’m also interested to see where they take this and SSIS products in general, as it almost seems too simple for RedGate, a company I normally associate with more advanced problem solving. Perhaps they are just dipping a toe in the water with a simple component for now?

    Read the article

  • Non-Full-Screen Application Launcher in Gnome 3?

    - by Jeff
    I'm trying out Gnome Shell in 11.04. You can push the "activities" key to get into the overview where you can launch applications. I like the idea of the overview as an aid in switching focus, but it's too slow for just launching an application. Is Gnome Shell going to implement, or does it have, a way to launch applications (besides the alt-f2 command launcher) that is as quick as Gnome-do? edit: To be clear, I'm aware of several Gnome application launchers. I'm curious about the Gnome Shell and any packages it includes (not add-ons like Gnome-do or Synapse).

    Read the article

  • ShowPlan Operator of the Week - Merge Join

    Did you ever wonder how and why your indexes affect the performances of joins? Once you've read Fabiano Amorim's unforgettable explanation, you'll learn to love the MERGE operator, and plan your indexes so as to allow the Query Optimiser to use it. Free trial of SQL Backup™“SQL Backup was able to cut down my backup time significantly AND achieved a 90% compression at the same time!” Joe Cheng. Download a free trial now.

    Read the article

  • SnapBird Supercharges Your Twitter Searches

    - by ETC
    Twitter’s default search tool is a bit anemic. If you want to supercharge your Twitter search, fire up web-based search tool SnapBird and dig into your past tweets as well as those of friends and followers. Yesterday I was trying to find a tweet I’d sent some time last year regarding my search for an application that could count keystrokes for inclusion in my review of the app I finally found to fulfill the need, KeyCounter. Searching for it with Twitter’s search tool yielded nothing. One simple search at SnapBird and I nailed it. SnapBird requires no authentication to search public tweets (both your own and those of your friends and follows) but does require authentication in order to search through your sent and received direct messages. SnapBird is a free service. SnapBird Latest Features How-To Geek ETC Internet Explorer 9 RC Now Available: Here’s the Most Interesting New Stuff Here’s a Super Simple Trick to Defeating Fake Anti-Virus Malware How to Change the Default Application for Android Tasks Stop Believing TV’s Lies: The Real Truth About "Enhancing" Images The How-To Geek Valentine’s Day Gift Guide Inspire Geek Love with These Hilarious Geek Valentines MyPaint is an Open-Source Graphics App for Digital Painters Can the Birds and Pigs Really Be Friends in the End? [Angry Birds Video] Add the 2D Version of the New Unity Interface to Ubuntu 10.10 and 11.04 MightyMintyBoost Is a 3-in-1 Gadget Charger Watson Ties Against Human Jeopardy Opponents Peaceful Tropical Cavern Wallpaper

    Read the article

  • I want to be able to use the unity menu with Citrix full screen

    - by porec
    I use Citrix Reciever at work, with both XenApp and XenDesktop. Many times at the same time. Since the unity Menu stil apeirs on the top anyway, I'd like to be able to use it. Now I can see it, but it doesn't work.. I have to either tab me out, (double clicking the ALT first)opening another program first, or move the mouse to the left, opening another program from the unity menu from the left, BEFORE I can use the menu on the top.. (my menu on the left side is in autohide mode, so I actually like it :)) For example. I use spotify for lisening to music, it apeirs on the top menu, but it doesn't react when it click it.. I have to move the mouse to the left, open another program, then move to the top an ask it to show spofity. If I open spofify from the left menu, it hangs.. (since its hidden, and I have to ask it to be open, not reopen the hole program..) Or If I want to lock the screen, I have to open another program, (i.ex. nixnote) before I can lock it) since the unity menu is "on the top" anyways, I don't see the problem that it should be able to control such things..

    Read the article

  • Join me to register for the Summit

    - by Bill Graziano
    This year the Summit registration opens at 6PM on Sunday at the Seattle convention center.  Last year we had a dozen people hanging out, watching the twitter feed on the big monitor and catching up.  All we really needed was a bar and we’d have our own little party going. So this year I’m adding a bar.  I’ve arranged for a cash bar and some stand up tables.  I’m buying the first round for the first 40 or so people that come by.  Come by, register and say Hi.  I’d especially like to encourage first-time attendees to stop by.  This is a low key way to meet some people that will be at the conference.

    Read the article

  • IPAD Full of Features

    After the hype has been fading, many start to wonder about the actual possibilities that iPad offers in comparison to its predecessors. Let me spare the commercials: it';s time to look more closely at... [Author: Richard Kook - Computers and Internet - May 09, 2010]

    Read the article

  • SQLSaturday #60 - Cleveland Rocks!

    - by Mike C
    Looking forward to seeing all the DBAs, programmers and BI folks in Cleveland at SQLSaturday #60 tomorrow! I'll be presenting on (1) Intro to Spatial Data and (2) Build Your Own Search Engine in SQL. I've reworked the Spatial Data presentation based on feedback from previous SQLSaturday events and added more sample code. I also expanded the Build Your Own Search Engine code samples to demonstrate additional FILESTREAM functionality. See you all tomorrow! A little road music, please! http://www.youtube.com/watch?v=vU0JpyH1gC...(read more)

    Read the article

  • SQLSaturday #60 - Cleveland Rocks!

    - by Mike C
    Looking forward to seeing all the DBAs, programmers and BI folks in Cleveland at SQLSaturday #60 tomorrow! I'll be presenting on (1) Intro to Spatial Data and (2) Build Your Own Search Engine in SQL. I've reworked the Spatial Data presentation based on feedback from previous SQLSaturday events and added more sample code. I also expanded the Build Your Own Search Engine code samples to demonstrate additional FILESTREAM functionality. See you all tomorrow! A little road music, please! http://www.youtube.com/watch?v=vU0JpyH1gC...(read more)

    Read the article

  • Join me at OpenWorld 2012

    - by Michael Palmeter (Exalogic PM)
    For those of you that will be coming out to Oracle OpenWorld 2012 next ween in San Francisco, I encourage you to take a few minutes on Monday afternoon to come to my session on Oracle Exalogic. Click here for more info: CON9416 - Oracle Exalogic 2.0: Ready-to-Deploy, Mission-Critical Private Cloud My session is one of the first on Oracle Exalogic (one of the privileges of running Product Management for the product) and with that in mind it is going to be something of an introduction and overview.  The material I will present is tailored for C-level customers that are interested in the product but haven't really been exposed to it in any detail.  This is essentially the same sort of presentation I give to customers that visit Oracle HQ, and it provides context for all of the other excellent sessions that follow. During this session I will talk about: The macro-trends in the industry that are driving Exalogic strategy - IT-as-a-Service and infrastructure convergence The first two years of market success with Exalogic - who's bought it, why, and what their results have been Exalogic key features and differentiation - why it's the best possible platform for Oracle business applications and middleware How Exalogic performs, and why it is the hands-down performance champion of Enterprise cloud platforms If you haven't signed up yet, please do.  I'd love to see you there.

    Read the article

  • How to join the World of Programming? [closed]

    - by litebread
    Name's Vlad and I am currently on my third year of Community College, studying Computer Science with emphasis on Programming in C++ and Networking. I have completed a few programming courses with general ease, but have not gained advanced understanding of programming through school. None of my friends are serious programmers working in the industry. Being an active lurker on many programming websites, and in general tech oriented sites I have noticed how little I know about the industry, the lingo and terminology. (I have no clue how Git hub works, but I generally understand what its for). So I am looking for help as to where I should look for information on the programming world and the industry in which I a very interested. By that I mean, what sites I should utilize to gain information on programming practices, introduction to advanced C++ and resources that simply introduce a 20some programming noob. I like programming, but I haven't dug my hands deep into it yet, I want to start to do so before I transfer to a University. All in all, where do I find information on becoming an actual programmer (Information that lays out a path). Thank you for reading. Have a great day!

    Read the article

  • Caption Competition 4: Fist Full of Captions

    - by Simple-Talk Editorial Team
    Once again we ask: What’s going on here? The best caption wins a $50 Amazon voucher. Computer-y answers for preference, but don’t let a lack of electronics stop you from dazzling us with your bon mots. Some examples to set you on your merry way: “You know what it’s like. Someone turns up to an interview in a long coat, they seem fine, but when they start the job it turns out it was a bunch of penguins.” “When I said we needed cold callers, this wasn’t really what I meant.” “Linux developers seek inspiration for new Logo” “Residents of Antarctica hold press conference to protest about Global Warming.”  You can do better. Make us laugh, win fabulous prizes. Answers in the comments, please.

    Read the article

  • doing a full permutation search and replace on a string

    - by user73307
    I'm writing an app that does something like a custom number (licence) place generator tool where if I ask for the plate "robin" it will suggest I try: r0bin rob1n r0b1n Are there any published algorithms which can do this? It has to be able to handle replacing single letters with multiples, e.g. m with rn and vise-versa and not fall over if it replaces an i with an l then comes to check the l and replaces it back to an i. The list of what gets swapped with what is going to be user input but I'm not expecting a huge list, possibly 10 pairs at most. I'll be implementing this in Ruby or Python but I should be able to convert code from any other language.

    Read the article

  • Memory is full with vertex buffer

    - by Christian Frantz
    I'm having a pretty strange problem that I didn't think I'd run into. I was able to store a 50x50 grid in one vertex buffer finally, in hopes of better performance. Before I had each cube have an individual vertex buffer and with 4 50x50 grids, this slowed down my game tremendously. But it still ran. With 4 50x50 grids with my new code, that's only 4 vertex buffers. With the 4 vertex buffers, I get a memory error. When I load the game with 1 grid, it takes forever to load and with my previous version, it started up right away. So I don't know if I'm storing chunks wrong or what but it stumped me -.- for (int x = 0; x < 50; x++) { for (int z = 0; z < 50; z++) { for (int y = 0; y <= map[x, z]; y++) { SetUpVertices(); SetUpIndices(); cubes.Add(new Cube(device, new Vector3(x, map[x, z] - y, z), grass)); } } } vertexBuffer = new VertexBuffer(device, typeof(VertexPositionTexture), vertices.Count(), BufferUsage.WriteOnly); vertexBuffer.SetData<VertexPositionTexture>(vertices.ToArray()); indexBuffer = new IndexBuffer(device, typeof(short), indices.Count(), BufferUsage.WriteOnly); indexBuffer.SetData(indices.ToArray()); Thats how theyre stored. The array I'm reading from is a byte array which defines the coordinates of my map. Now with my old version, I used the same loading from an array so that hasn't changed. The only difference is the one vertex buffer instead of 2500 for a 50x50 grid. cubes is just a normal list that holds all my cubes for the vertex buffer. Another thing that just came to mind would be my draw calls. If I'm setting an effect for each cube in my cube list, that's probably going to take a lot of memory. How can I avoid doing this? I need the foreach method to set my cubes to the right position foreach (Cube block in cube.cubes) { effect.VertexColorEnabled = false; effect.TextureEnabled = true; Matrix center = Matrix.CreateTranslation(new Vector3(-0.5f, -0.5f, -0.5f)); Matrix scale = Matrix.CreateScale(1f); Matrix translate = Matrix.CreateTranslation(block.cubePosition); effect.World = center * scale * translate; effect.View = cam.view; effect.Projection = cam.proj; effect.FogEnabled = false; effect.FogColor = Color.CornflowerBlue.ToVector3(); effect.FogStart = 1.0f; effect.FogEnd = 50.0f; cube.Draw(effect); noc++; }

    Read the article

  • Join Us at Oracle OpenWorld Latin America (Dec 4-6)

    - by Zeynep Koch
    Hello to all Latin Americans,  Oracle Openworld Latin America is starting tomorrow. Oracle Linux will be showcased in different sessions and in the exhibition area. Here's some of the links and details to our sessions: Session Schedules: http://www.oracle.com/openworld/lad-en/session-schedule/index.html Oracle Linux sessions: New Features in Oracle Linux: A Technical Deep Dive,    Dec 4, 13:30-14:30, Mezzanine Room 7 Oracle Linux Strategy and Roadmap,   Dec 4, 17:15-18:15, Mezzanine Room 5 Oracle OpenWorld Latin America Exhibition Halls Hours Tuesday, December 4 12:00–19:3018:15–19:30 (Dedicated Hours)Wednesday, December 511:00–19:3018:30–19:30 (Dedicated Hours)Thursday, December 6 11:00–19:0017:45–19:00 (Dedicated Hours) We will also hand out the following in our booth, don't forget to visit us: - Oracle Linux and Oracle VM DVD Kit  - Server Virtualization for Dummies  See you there :)

    Read the article

  • Life Is Full Of Changes (Part 1)

    - by Brian Jackett
    Today will be my last day with Sogeti.  I’ve been with Sogeti USA for just over 4 years.  In that time I’ve gotten to work on some great projects, develop relationships with some brilliant and passionate people, participate in the .Net developer and SharePoint communities, and grow my skills in a number of areas I’m passionate about.     As with all good things they must come to an end though.  I’ve accepted a position with another company and will provide more details once the transition has completed.  This decision was a difficult one to make but it provides a great career opportunity on many levels.  As much as my new schedule allows I plan to continue participating in local user groups, speaking at conferences, and blogging.     Speaking of which, you may have noticed my reduced blogging activity in the past few months.  In addition to a career change I’m also in the process of moving to a new residence (only a few miles from my current residence, so I’ll still be in Columbus.)  Searching for a new place, filling out paperwork, and all of the other work associated with this move has taken away a good chunk of the time I used to devote to blogging.  Once everything gets settled out with the move and job change I’ll re-evaluate how much time I can devote to blogging.     A big thanks to Sogeti and everyone who has been so supportive over my time with them.  It’s hard to move on, but I am excited for the prospects that the future will bring.         -Frog Out

    Read the article

  • Need help with gimp 2.8 (cpu not used to full capacity) [closed]

    - by Birgir Freyr
    I know this isn't the right place to ask this question but maybe some one here can point me out to were I should place this question (or help me fix it :)). Since I updated Gimp to 2.8 (and let me start by saying how happy I am with the new gimp) I have notice that Gimp only uses 35% max of my CPU power. I have tried changing settings, assigning only one CPU to Gimp (both in gimp preference and in windblows task manager). No matter what settings I choose it only uses 35% of the cpu. If I assign just one Core to it then Gimp will use 100% of that core (which is about 35% of a three core processor I have. Any thoughts? I am using Windblows 7 64 bit, gimp 2.8.0, AMD a6-3500 cpu. I also use Ubuntu (am going to see if it works the same there). Any help would be great.

    Read the article

< Previous Page | 32 33 34 35 36 37 38 39 40 41 42 43  | Next Page >