Search Results

Search found 5527 results on 222 pages for 'unique constraint'.

Page 84/222 | < Previous Page | 80 81 82 83 84 85 86 87 88 89 90 91  | Next Page >

  • The practical cost of swapping effects

    - by sebf
    I use XNA for my projects and on those forums I sometimes see references to the fact that swapping an effect for a mesh has a relatively high cost, which surprises me as I thought to swap an effect was simply a case of copying the replacement shader program to the GPU along with appropriate parameters. I wondered if someone could explain exactly what is costly about this process? And put, if possible, 'relatively' into context? For example say I wanted to use a short shader to help with picking, I would: Change the effect on every object, calculting a unique color to identify it and providing it to the shader. Draw all the objects to a render target in memory. Get the color from the target and use it to look up the selected object. What portion of the total time taken to complete that process would be spent swapping the shaders? My instincts would say that rendering the scene again, no matter how simple the shader, would be an order of magnitude slower than any other part of the process so why all the concern over effects?

    Read the article

  • Does semi-normalization exist as a concept? Is it "normalized"?

    - by Gracchus
    If you don't mind, a tldr on my experience: My experience tldr I have an application that's heavily dependent upon uncertainty, a bane to database design. I tried to normalize it as best as I could according to the capabilities of my database of choice, but a "simple" query took 50ms to read. Nosql appeals to me, but I can't trust myself with it, and besides, normalization has cut down my debugging time immensely over and over. Instead of 100% normalization, I made semi-redundant 1:1 tables with very wide primary keys and equivalent foreign keys. Read times dropped to a few ms, and write times barely degraded. The semi-normalized point Given this reality, that anyone who's tried to rely upon views of fully normalized data is aware of, is this concept codified? Is it as simple as having wide unique and foreign keys, or are there any hidden secrets to this technique? Or is uncertainty merely a special case that has extremely limited application and can be left on the ash heap?

    Read the article

  • Understanding the Java Ecosystem

    - by syrion
    I have traditionally had the "luxury" of being a one-man development team. I've used Python extensively, have a reasonable command of Perl, PHP, and JavaScript. My problem is Java. I can write Java code. I'm not great at it--unlike Python, I rarely make use of anything unique to Java when I'm writing it. Furthermore, my experience is mostly in simple GUI/console programming. Unfortunately, I'm currently pursuing an IT degree where Java is the lingua franca. My database class is requiring that our projects be written in Java using servlets, and I just can't wrap my head around the ecosystem. Is there a good online overview of or tutorial on how the Java web ecosystem works? I have Thinking in Java, but it's mostly just the language itself (which I understand well enough to get by). I have looked at the Sun servlet tutorial, but it seems outdated.

    Read the article

  • Google indexed my main site's content under subdomains

    - by Christie Angelwitch
    Google is indexing top level domain content as though it belongs on subdomains and I want to disable this. My site has wildcards enabled and we also have two subdomains with unique content. The first subdomain serves as a blog, the second one has only one page. Both have backlinks. Google has indexed content from the main site under the subdomains as well. Let's say that we have a page at example.com/page.html . The same page has also been indexed as subdomain.example.com/page.html as well and sometimes ranks better than the one located at the main site. The thing is that we never placed this content at the subdomain. I've thought about adding canonical tags at the subdomains to help with the duplicate content issue. How can I stop Google from indexing those pages? I don't even know how Google found those, since we never placed them at the subdomains.

    Read the article

  • How can I add the version of a file to the file name with Tortoise-SVN?

    - by Eric Belair
    I would like to start giving unique names to "cache-able" files - i.e. *.css and *.js - in order to prevent caching, without requiring changes to the web-server settings (as is currently done in IIS). For instance, let's I have a JavaScript file called global.js. Going forward I would like it to have the name global.123.js when revision 123 is checked in. This would also require the following: The previous version of the file - perhaps it was global.115.js - is removed when the file is deployed. All references to the file are updated with the new file name How do I go about doing this? What concerns do I need to consider?

    Read the article

  • Webcast Oracle: La gouvernance des données de référence pour les départements Finance

    - by Louisa Aggoune
    Inscrivez-vous dès maintenant à la session webcast du 11 juillet, de 11h à 12h organisée pour le lancement d’Oracle Data Relationship Governance Vous souhaitez centraliser et partager les données de référence des différentes applications de votre système d’information Finance pour en assurer la cohérence et en diminuer les coûts de réconciliation? Cette session est une opportunité unique de découvrir les avantages pour votre entreprise de l’offre "Oracle DRG – Data Relationship Governance". En échangeant avec nos experts dans le cadre d’une session interactive et d’une démonstration de la plateforme, vous découvrirez : Une application dédiée à la gestion des données de référence Finance : plans de comptes, entités légales, axe organisation, axes analytiques. Un processus de mise à jour du référentiel Finance via un workflow. Comment garantir la cohérence des données de référence. L’audit et l’historisation du référentiel Finance pour répondre aux exigences de contrôle et de traçabilité de la loi Sarbanes-Oxley. Détails de l'événement: Jeudi 11 juillet 2013: 11:00 – 12:00 Pour vous inscrire : cliquez içi

    Read the article

  • How to approach big developer companies if I have a killer game idea? (for mobile devices)

    - by Balázs Dávid
    I have an idea for a game that has a potential, but I'm not a programmer. How to tell this to development companies without being my idea stolen? All I want from the company is first to watch a 3-minute long video presentation about my idea and if they see fantasy in it then we can talk about the details. I have already sent an e-mail to several big companies that have the expertise needed to code the game, they haven't answer me. Actually the idea is nothing fancy, no 3D, but fun and unique.

    Read the article

  • Why is implementing copy-paste in a touch screen based smartphone such a big deal?

    - by EpsilonVector
    I'm not entirely sure this is on-topic, but it definitely needs a programmer's understanding to be answered, and deals with general development (for a specific scenario) as opposed to a specific piece of code. In a way it also translates into "what are the challenges in doing X in a touch screen app", and similar questions have been asked here in the past. So here it is: When Apple didn't implement copy-pasting on the iPhone since version 1 I just assumed it was a UI issue- they were waiting until they figured out a good UI for it. But now the idea is out there, and Microsoft still released Windows Phone 7 without copy-pasting, promising it'll be ready in a few months. My question is: why does this takes a few months to implement? Are there some technological challenges that are unique to programming for a touch screen that I'm not familiar with?

    Read the article

  • Webshop for digital goods with voucher / gift card system [duplicate]

    - by Kelzama
    This question already has an answer here: Which Ecommerce Script Should I Use? 1 answer I'm searching for a webshop which provides the following: The shop offers digital goods (like mp3) User can buy a voucher / gift card @Reseller (Or there is a code provided in the CD) User can enter his code @ webshop and gets the download (unregistered) User can enter his code @ webshop and download is added to his/her library (registered) optional: Resellers can buy codes from the Webshop I already tried prestashop as it looks quite nice. But it needs a lot of custom programming (and has a very strange voucher-system). Customer has to add the File into the basket and add the voucher at checkout. I want to skip that ;) Is there a Webshop (Or CMS + Plugin) which provides the things I need? (it could also be a CMS with a Storage/Folder Plugin (like joomla + K2) and a possibility to activate downloads via unique Codes.) Any ideas are highly appreciated :) Thanks in advance.

    Read the article

  • Oracle Sequences

    - by jkrebsbach
    Reminder to myself - SQL Server has nice index columns directly tied to their tables. Oracle has sequences that are islands to themselves. select seq_name.currval from dual; select seq_name.nextval from dual; currval - return current number at top of sequence nextval - increment sequence by 1, return new number   therefore - to create functionality in oracle similar to an index column - OPTION A) - Create insert trigger: CREATE OR REPLACE TRIGGER dept_bir BEFORE INSERT ON departments FOR EACH ROW WHEN (new.id IS NULL) BEGIN SELECT dept_seq.NEXTVAL INTO :new.id FROM dual; END; This will handle creating a unique identity, but will not necessarily inform process flow of identity without additional logic. OPTION B) - Select indentity into temp variable, insert whole item into tab **** When attemptint to query currval, the below error was being thrown - SELECT seq_name.currval from dual; ERROR : TABLE OR VIEW DOES NOT EXIST *** Although Oracle sys tables may have access to the sequences, that isn't to say the Oracle user may have access to those sequences - verify permissions when the system can't see object that are being reported in the object explorer.

    Read the article

  • Do database tables need to have IDs?

    - by Arturas M
    Is an ID field is always needed in database tables? In my case I have a user with firstName, lastName and email fields. email is unique and not null, so it could be used as an ID, right? So in that case, could/should I try to remove the ID? Also I want to have another table which extends this one. Let's say its called patient and it has it's own field additionalData and I would like to link the relationship through the email of user I mentioned. So the relationship should be 1 to 1, right? and I wouldn't need the IDs? Somehow MySQL Workbench wants me to use the IDs. What do you guys think. Any suggestions on this topic?

    Read the article

  • Detect duplicate in a subset from a set of elements

    - by Abhinav Shrivastava
    I have a set of numbers say : 1 1 2 8 5 6 6 7 8 8 4 2... I want to detect the duplicate element in subsets(of given size say k) of the above numbers... For example : Consider the increasing subsets(for example consider k=3) Subset 1 :{1,1,2} Subset 2 :{1,2,8} Subset 3 :{2,8,5} Subset 4 :{8,5,6} Subset 5 :{5,6,6} Subset 6 :{6,6,7} .... .... So my algorithm should detect that subset 1,5,6 contains duplicates.. My approach : 1)Copy the 1st k elements to a temporary array(vector) 2) using #include file in C++ STL...using unique() I would determine if there's any change in size of vector.. Any other clue how to approach this problem..

    Read the article

  • Oracle makes Virtualized Java Applications Practical. Announces Brand New Products

    - by blake.connell
    New Oracle Virtual Assembly Builder and Oracle WebLogic Suite Virtualization Option make running Java applications in a virtual environments easy and practical. • Oracle Virtual Assembly Builder is a new product designed to help organizations quickly and easily deploy multi-tier enterprise applications in virtualized environments. It enables administrators to quickly configure and provision these applications. • Oracle WebLogic Suite Virtualization Option delivers Oracle WebLogic Server on Oracle JRockit Virtual Edition delivering 'near-native' performance and increased server density. • Oracle WebLogic Server on Oracle JRockit Virtual Edition runs directly on Oracle VM without a guest operating system, a unique capability resulting in better performance and more application server runtime per system. Oracle WebLogic Suite Virtualization Option and Oracle Virtual Assembly Builder can drive operational efficiency and agility. Customers can dynamically scale up/down the underlying software infrastructure and applications with ease through software automation. Register for a live webinar with Oracle product experts Read the press release For more product information: Oracle Virtual Assembly Builder Oracle WebLogic Suite Virtualization Option

    Read the article

  • AngularJS: structuring a web application with multiple ng-apps

    - by mg1075
    The blogosphere has a number of articles on the topic of AngularJS app structuring guidelines such as these (and others): http://www.johnpapa.net/angular-app-structuring-guidelines/ http://codingsmackdown.tv/blog/2013/04/19/angularjs-modules-for-great-justice/ http://danorlando.com/angularjs-architecture-understanding-modules/ http://henriquat.re/modularizing-angularjs/modularizing-angular-applications/modularizing-angular-applications.html However, one scenario I have yet to come across for guidelines and best practices is the case where you have a large web application containing multiple "mini-spa" apps, and the mini-spa apps all share a certain amount of code. I am not referring to the case of trying to have multiple ng-app declarations on the same page; rather, I mean different sections of a large site that have their own, unique ng-app declaration. As Scott Allen writes in his OdeToCode blog: One scenario I haven't found addressed very well is the scenario where multiple apps exist in the same greater web application and require some shared code on the client. Are there any recommended approaches to take, pitfalls to avoid, or good sample structures of this scenario that you can point to?

    Read the article

  • Link tracking: Amazon or Google way

    - by Howard
    When doing a shopping site, the best way is to reference some successful stores, like Amazon. In the area of link tracking, for example, to see which section of your frontpage yield better conversion: Amazon way: Generate an unique URL for each link in the frontpage, such as http://www.amazon.com/gp/product/B0083Q04IQ/ref=s9_pop_gw_g424_ir04/175-6575053-9292830?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=0AMJCKBBQA63EP0XHB86&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846 Google way Use Google Analytics <a href="/products/abc" onClick="javascript: pageTracker._trackPageview('/from-main-menu/products/abc');"> WHat are the pros and cons with the above two approaches (besides Google require JS support)?

    Read the article

  • Digg alternatives for blog and unpopular users? [closed]

    - by Wladimir Ivanov
    all. I'm struggling to build an [B]audience[/B] for [B]electronic blog[/B] . The blog is relatively new and has around 30 pages. The unique visitors I get are approximately [B]120 - daily[/B]. I know about directories, rss, comments and guest blogging, but is there other more effective strategy to build some quality audience? As I see nowadays there aren't enough materials in my country about this. What about digg and reddit? Everytime I post some link there: no traffic comes to me. Can you suggest me other digg/reddit/stumbleupon tactics to get followers or there are similar sites which would tend to give me some serious traffic. Can you suggest sites appropriate for linking to music blog? Best regards.

    Read the article

  • What has Ubuntu contributed to the Linux Kernel?

    - by Luis Alvarado
    This question is similar to this one: What unique enhancements and features has Ubuntu brought to the Linux Community but in this case it is directed towards what has Ubuntu contributed to the official Linux Kernel. For example, many times I hear about Intel contributing to patches for the Linux Kernel like the RC6 latest patches and any other related to the recent Sandy/Ivy Bridges. In another group, Android did an upstream patch and a lot of ARM patches have also come to the Linux Kernel. I have seeing only a small percent of companies and groups that have contributed to the Linux Kernel (http://kernel.org) but I want to know, since the beginning of Ubuntu till now, what has Ubuntu contributed to the Linux Kernel in regards to any aspect of the kernel. For Kernel information I typically go to http://kernelnewbies.org and http://kernel.org

    Read the article

  • Server side random selection of players

    - by Ron
    Assuming I have a simple client-server game, where the server picks random players on a very frequent base, I was wondering what is the best way to select a random player (According to the following constraints): Solution must be high performance and highly scalable Random spread should be relatively even (meaning if I have 3 players and pick 99 times, they will all be picked 33 times more or less) Should only pick players who were active in the past X days (optional, but a big bonus) The actual DB or data model used to store players isn't an issue here, as we'll select the technology in accordance to our needs. However, high performance and scalability is (at the moment we have over 60,000 unique daily active players, and we plan on growing even more). Thanks!

    Read the article

  • How much a website like bytes.com earning

    - by robin das
    i am running a website similar to bytes.com (IT QnA site) my site attract 600 unique visitors daily. we are planning our self as bytes.com. Atleast any one can tell me that whether we can earn some serious money with this kind of website. websiteoutlook estimate Daily Pageview - 700636 to bytes.com and its using google ads. Can any one please let me know what kind of earning we can expect for dotcom like bytes.com. Please give some light on this topic as a lot of energy, time and money goes in building this kind of website thanks robin Das

    Read the article

  • What do you do if you reach a design dead-end in evolutionary methods like Agile or XP?

    - by Dipan Mehta
    As I was reading Martin Fowler's famous blog post Is Design Dead?, one of the striking impressions I got is that given the fact that in Agile Methodology and Extreme Programming, the design as well as programming is evolutionary, there are always points where things need to get refactored. It may be possible that when a programmer's level is good, and they understand design implications and don't make critical mistakes, the code continues to evolve. However, in a normal context, what is the ground reality in this context? In a normal day given some significant development goes into product, and when critical change occurs in requirement isn't it a constraint that how much ever we wish, fundamental design aspects cannot be modified? (without throwing away major part of the code). Is it not quite likely that one reaches dead-end on any further possible improvement on design and requirements? I am not advocating any non-Agile practice here, but I want to know from people who practice agile or iterative or evolutionary development methods, as for their real experiences. Have you ever reached such dead-ends? How have you managed to avoid it or escaped it? Or are there measures to ensure that design remains clean and flexible as it evolves?

    Read the article

  • SPARC at 25: Past, Present and Future

    - by kgee
    Join us online to celebrate a quarter-century of innovation. Watch Scott McNealy, Bill Joy, and Andy Bechtolsheim along with other significant SPARC contributors discuss the challenges and rewards of consistently redefining the limits of enterprise IT. Hear Mark Hurd and John Fowler talk about the aggressive plans for SPARC’s future. All of this was recently captured in video at the SPARC anniversary event held at the Computer History Museum in Mountain View, California. In addition to getting unique insights from the people behind 25 years of SPARC technology, you can access exclusive content and resources, read case studies and e-Books, view webcasts and infographics, and more. Be sure to take some time to rediscover why and how SPARC was developed, the considerable impact it had on the entire IT industry, and the continuing innovations coming in the future.http://www.oracle.com/go/?&Src=7618691&Act=721&pcode=WWMK12044691MPP051

    Read the article

  • Business Success with BPM: Customer Experiences

    - by Ajay Khanna
    Oracle OpenWorld provides a unique opportunity to listen to Oracle Business Process Management Customers. This year we have many customers including Novartis, University of Melbourne, McAfee, Nagravision, Amadeus among others speaking at various sessions. One of such session is the customer panel hosted by Manas Deb from Oracle Product Management team. In this session, you will hear your peers discuss how they have overcome technical and organizational challenges; delivered success; and brought improved efficiency, visibility, and business agility to their companies. If you are interested in hearing more about how our customers use Oracle Business Process Management Suite, join us for the following session: Business Success with BPM: Customer Experiences Monday, Oct 1, 4:45 PM - 5:45 Moscone South - 308 Oracle Business Process Management Track covers a variety of topics, and speakers covering technology, methodology and best practices. You can see the list of Business process Management sessions here. Come back to this blog for more coverage from Oracle OpenWorld!

    Read the article

  • Google analytics: how many visitors have visited n times?

    - by Riley
    I'm trying to guess how many loyal users I have by counting the number of people that have visited the site 10 times. How can I answer this question with Google Analytics? "Visitor Loyalty" is a tempting answer, but the label for loyalty is "Visits that were the visitor's nth visit," and I want something more like "Visitors that visited n times." For example, we have 40 visits in the "51-100" visit range, but I think that could be a single user who visited 91 times. Or two users who visited 71 times each. The whole chart makes a good logic puzzle (I wonder if there's a unique solution) but doesn't easily answer the question I have.

    Read the article

  • Java Developers: Open-source Modules, Great Tools, Opportunity.

    - by Paul Sorensen
    The role of Java developer may just be better than ever. An excellent article in Java Magazine discusses the availability of web-based tools that help development teams more effectively manage their projects and modules. If you are a Java developer you should definitely read this article. I especially like the Expert Opinions scattered throughout the article. These highlight real-world usage of the latest and greatest development tools.  As you consider steps to move your career forward, consider Java certification. Oracle has over 15 unique Java certification credentials available. The process of becoming certified in Java and preparing for your exams will require you to study, learn and practice (code). All of this activity will help you sharpen your skills and increase your working knowledge of Java - making you a better developer and more valuable member of your team. You can use the Certification Finder on the Oracle certification homepage to find a Java certification that is right for you. Thanks! 

    Read the article

  • Developing Schema Compare for Oracle (Part 2): Dependencies

    - by Simon Cooper
    In developing Schema Compare for Oracle, one of the issues we came across was the size of the databases. As detailed in my last blog post, we had to allow schema pre-filtering due to the number of objects in a standard Oracle database. Unfortunately, this leads to some quite tricky situations regarding object dependencies. This post explains how we deal with these dependencies. 1. Cross-schema dependencies Say, in the following database, you're populating SchemaA, and synchronizing SchemaA.Table1: SOURCE   TARGET CREATE TABLE SchemaA.Table1 ( Col1 NUMBER REFERENCES SchemaB.Table1(Col1));   CREATE TABLE SchemaA.Table1 ( Col1 VARCHAR2(100) REFERENCES SchemaB.Table1(Col1)); CREATE TABLE SchemaB.Table1 ( Col1 NUMBER PRIMARY KEY);   CREATE TABLE SchemaB.Table1 ( Col1 VARCHAR2(100) PRIMARY KEY); We need to do a rebuild of SchemaA.Table1 to change Col1 from a VARCHAR2(100) to a NUMBER. This consists of: Creating a table with the new schema Inserting data from the old table to the new table, with appropriate conversion functions (in this case, TO_NUMBER) Dropping the old table Rename new table to same name as old table Unfortunately, in this situation, the rebuild will fail at step 1, as we're trying to create a NUMBER column with a foreign key reference to a VARCHAR2(100) column. As we're only populating SchemaA, the naive implementation of the object population prefiltering (sticking a WHERE owner = 'SCHEMAA' on all the data dictionary queries) will generate an incorrect sync script. What we actually have to do is: Drop foreign key constraint on SchemaA.Table1 Rebuild SchemaB.Table1 Rebuild SchemaA.Table1, adding the foreign key constraint to the new table This means that in order to generate a correct synchronization script for SchemaA.Table1 we have to know what SchemaB.Table1 is, and that it also needs to be rebuilt to successfully rebuild SchemaA.Table1. SchemaB isn't the schema that the user wants to synchronize, but we still have to load the table and column information for SchemaB.Table1 the same way as any table in SchemaA. Fortunately, Oracle provides (mostly) complete dependency information in the dictionary views. Before we actually read the information on all the tables and columns in the database, we can get dependency information on all the objects that are either pointed at by objects in the schemas we’re populating, or point to objects in the schemas we’re populating (think about what would happen if SchemaB was being explicitly populated instead), with a suitable query on all_constraints (for foreign key relationships) and all_dependencies (for most other types of dependencies eg a function using another function). The extra objects found can then be included in the actual object population, and the sync wizard then has enough information to figure out the right thing to do when we get to actually synchronize the objects. Unfortunately, this isn’t enough. 2. Dependency chains The solution above will only get the immediate dependencies of objects in populated schemas. What if there’s a chain of dependencies? A.tbl1 -> B.tbl1 -> C.tbl1 -> D.tbl1 If we’re only populating SchemaA, the implementation above will only include B.tbl1 in the dependent objects list, whereas we might need to know about C.tbl1 and D.tbl1 as well, in order to ensure a modification on A.tbl1 can succeed. What we actually need is a graph traversal on the dependency graph that all_dependencies represents. Fortunately, we don’t have to read all the database dependency information from the server and run the graph traversal on the client computer, as Oracle provides a method of doing this in SQL – CONNECT BY. So, we can put all the dependencies we want to include together in big bag with UNION ALL, then run a SELECT ... CONNECT BY on it, starting with objects in the schema we’re populating. We should end up with all the objects that might be affected by modifications in the initial schema we’re populating. Good solution? Well, no. For one thing, it’s sloooooow. all_dependencies, on my test databases, has got over 110,000 rows in it, and the entire query, for which Oracle was creating a temporary table to hold the big bag of graph edges, was often taking upwards of two minutes. This is too long, and would only get worse for large databases. But it had some more fundamental problems than just performance. 3. Comparison dependencies Consider the following schema: SOURCE   TARGET CREATE TABLE SchemaA.Table1 ( Col1 NUMBER REFERENCES SchemaB.Table1(col1));   CREATE TABLE SchemaA.Table1 ( Col1 VARCHAR2(100)); CREATE TABLE SchemaB.Table1 ( Col1 NUMBER PRIMARY KEY);   CREATE TABLE SchemaB.Table1 ( Col1 VARCHAR2(100)); What will happen if we used the dependency algorithm above on the source & target database? Well, SchemaA.Table1 has a foreign key reference to SchemaB.Table1, so that will be included in the source database population. On the target, SchemaA.Table1 has no such reference. Therefore SchemaB.Table1 will not be included in the target database population. In the resulting comparison of the two objects models, what you will end up with is: SOURCE  TARGET SchemaA.Table1 -> SchemaA.Table1 SchemaB.Table1 -> (no object exists) When this comparison is synchronized, we will see that SchemaB.Table1 does not exist, so we will try the following sequence of actions: Create SchemaB.Table1 Rebuild SchemaA.Table1, with foreign key to SchemaB.Table1 Oops. Because the dependencies are only followed within a single database, we’ve tried to create an object that already exists. To fix this we can include any objects found as dependencies in the source or target databases in the object population of both databases. SchemaB.Table1 will then be included in the target database population, and we won’t try and create objects that already exist. All good? Well, consider the following schema (again, only explicitly populating SchemaA, and synchronizing SchemaA.Table1): SOURCE   TARGET CREATE TABLE SchemaA.Table1 ( Col1 NUMBER REFERENCES SchemaB.Table1(col1));   CREATE TABLE SchemaA.Table1 ( Col1 VARCHAR2(100)); CREATE TABLE SchemaB.Table1 ( Col1 NUMBER PRIMARY KEY);   CREATE TABLE SchemaB.Table1 ( Col1 VARCHAR2(100) PRIMARY KEY); CREATE TABLE SchemaC.Table1 ( Col1 NUMBER);   CREATE TABLE SchemaC.Table1 ( Col1 VARCHAR2(100) REFERENCES SchemaB.Table1); Although we’re now including SchemaB.Table1 on both sides of the comparison, there’s a third table (SchemaC.Table1) that we don’t know about that will cause the rebuild of SchemaB.Table1 to fail if we try and synchronize SchemaA.Table1. That’s because we’re only running the dependency query on the schemas we’re explicitly populating; to solve this issue, we would have to run the dependency query again, but this time starting the graph traversal from the objects found in the other database. Furthermore, this dependency chain could be arbitrarily extended.This leads us to the following algorithm for finding all the dependencies of a comparison: Find initial dependencies of schemas the user has selected to compare on the source and target Include these objects in both the source and target object populations Run the dependency query on the source, starting with the objects found as dependents on the target, and vice versa Repeat 2 & 3 until no more objects are found For the schema above, this will result in the following sequence of actions: Find initial dependenciesSchemaA.Table1 -> SchemaB.Table1 found on sourceNo objects found on target Include objects in both source and targetSchemaB.Table1 included in source and target Run dependency query, starting with found objectsNo objects to start with on sourceSchemaB.Table1 -> SchemaC.Table1 found on target Include objects in both source and targetSchemaC.Table1 included in source and target Run dependency query on found objectsNo objects found in sourceNo objects to start with in target Stop This will ensure that we include all the necessary objects to make any synchronization work. However, there is still the issue of query performance; the CONNECT BY on the entire database dependency graph is still too slow. After much sitting down and drawing complicated diagrams, we decided to move the graph traversal algorithm from the server onto the client (which turned out to run much faster on the client than on the server); and to ensure we don’t read the entire dependency graph onto the client we also pull the graph across in bits – we start off with dependency edges involving schemas selected for explicit population, and whenever the graph traversal comes across a dependency reference to a schema we don’t yet know about a thunk is hit that pulls in the dependency information for that schema from the database. We continue passing more dependent objects back and forth between the source and target until no more dependency references are found. This gives us the list of all the extra objects to populate in the source and target, and object population can then proceed. 4. Object blacklists and fast dependencies When we tested this solution, we were puzzled in that in some of our databases most of the system schemas (WMSYS, ORDSYS, EXFSYS, XDB, etc) were being pulled in, and this was increasing the database registration and comparison time quite significantly. After debugging, we discovered that the culprits were database tables that used one of the Oracle PL/SQL types (eg the SDO_GEOMETRY spatial type). These were creating a dependency chain from the database tables we were populating to the system schemas, and hence pulling in most of the system objects in that schema. To solve this we introduced blacklists of objects we wouldn’t follow any dependency chain through. As well as the Oracle-supplied PL/SQL types (MDSYS.SDO_GEOMETRY, ORDSYS.SI_COLOR, among others) we also decided to blacklist the entire PUBLIC and SYS schemas, as any references to those would likely lead to a blow up in the dependency graph that would massively increase the database registration time, and could result in the client running out of memory. Even with these improvements, each dependency query was taking upwards of a minute. We discovered from Oracle execution plans that there were some columns, with dependency information we required, that were querying system tables with no indexes on them! To cut a long story short, running the following query: SELECT * FROM all_tab_cols WHERE data_type_owner = ‘XDB’; results in a full table scan of the SYS.COL$ system table! This single clause was responsible for over half the execution time of the dependency query. Hence, the ‘Ignore slow dependencies’ option was born – not querying this and a couple of similar clauses to drastically speed up the dependency query execution time, at the expense of producing incorrect sync scripts in rare edge cases. Needless to say, along with the sync script action ordering, the dependency code in the database registration is one of the most complicated and most rewritten parts of the Schema Compare for Oracle engine. The beta of Schema Compare for Oracle is out now; if you find a bug in it, please do tell us so we can get it fixed!

    Read the article

< Previous Page | 80 81 82 83 84 85 86 87 88 89 90 91  | Next Page >