As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Is there a tool which can look at your T-SQL and suggest hints for better performance? For example it finds usage of SARGs and converts a query into one without use of a sarg. Or pinpointing inefficient use of joins.
I am looking for tools beyond the Database Engine Tuning Advisor & use of the Profiler. For example I am currently checking out Toad for SQL Server which has some optimization features.
Addition:
Toad has an optimizer where it creates different queries or scenarios for my query and evaluates the cost of each query but its suggestions are primitive & simple. It's in the right direction but hopefully the optimizer gets a lot more smarter over time and be more useful.
While it won't cook breakfast nor repair your automobile, the LessThanDot SqlCop can highlight some wayward database code and objects which have an effect on performance. It is a best practices analyzer that is more application-oriented than the Microsoft Best Practices Analyzer (which is more DBA-oriented). The price is nice for both of them (free).
Check them out for yourself...
LessThanDot SqlCop
MS Best Practices Analyzer
There are a couple of static analysis tools for T-SQL which can identify the types of problems you're interested in detecting, although they will not suggest detailed fixes.
SQL Enlight offers 80+ pre-defined static analysis rules plus the ability to define your own - it will run as an SSMS plugin and a command-line tool. There's also a limited version on the website.
The Visual Studio editions which include the database tools also include fewer (20 or so) static analysis rules for T-SQL. Using it requires importing your code into a VS database project.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm looking for a document oriented database to store over millions of invoices with fast reporting speed.
I find some options such as MongoDB, Ravendb, Couchdb but I don't know the risk of performance failure vs. Sql Server Xml type column.
The source of this question is here.
Fast reporting is something that you want to do in sql server. I'm not aware of a good NoSQL solution for this scenario.
RavenDB has the index replication bundle that enables you to replicate an index to a sql table, so that you can do some advanced reports on them.
Reza,
RavenDB seems like a good match here. It all depends on what you are actually calling "reporting".
Doing things like "how many invoices are there for last month" is easy in RavenDB.
As is doing things like "how much money does Northwind owe us?"
We don't recommend RavenDB for reporting for the specific case where you have dynamic reporting needs such as the need to do on the fly aggregation.
What is it that you are actually trying to do with regards to reporting?
That aside, invoices is a nice place where RavenDB truly shines, especially given the other parameters of this question with the dynamic nature of the invoices.
but I don't know the risk of performance failure vs. Sql Server Xml type column.
Epic fail already here. Invoices are relational data in most cases (in all you need) so address links, line items, numbers and prices are in tables, not XML data type. This is the "ok, so - you planned to wkr at McDonalds, not in our team?" level design decision.
What line items and invoices may have is additional data in XML (like timesheets etc.) but if you run accounting, you dont run it as documents.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Can you please guide me to a book, tool or article that would guide me on how to make an asp.net MVC 2 application that uses WCF to perform better?
I am interested in lower database query time.
How to render pages more quickly.
How to write controllers and action and what are the best practices in order to obtain an efficient application.
I use Asp.Net MVC 2 , NHibernate / Entity Framework, WCF 4.0 and JQuery.
Thanks
It may not be the answer you are looking for. I dont think there is a magic tool that will tell you all the problems in all the framework you are using.
I am interested in lower database query time.
For this, you have to use Sql profiler and go through each procedure/query then optimize.
How to render pages more quickly.
Try YSlow from Yahoo. I cant remember tool name from Google. I will add it latter
Check out Hanselmans podcast with Steve Sodders. Creator of YSlow on Web Site Optimization. They talk about various tools on performance tuning.
Sam Saffron works at Stack Overflow and writes numerous articles on performance tuning. This one may be useful for you. Profiling your website like a true Ninja
That's all said, logging is going to be your friend. With good logging, you have more freedom to focus on specific code/component or with AOP tools you can instrument entire app with little code.
I would also add the very easy to use MVC-Mini-profiler. It works with MVC and EF.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
So I am working on a mini-project for the summer to keep my coding skills sharp. I will be using the Qt4 and C++ to make a classroom management system for college professors. I just came up with the idea like 10 minutes ago so I don't have much.
One question I have is what is the best way to store student/class/assignment information so that the software could still be portable and used my different schools.
My first guess would be a MySQL database. I need a gurus opinion on this one though.
Since different sites have different database preferences you might wish to use a layer such as ActiveRecord or PDO or ODBC to abstract out the specific database that your end users want to use. This would allow people to deploy onto PostgreSQL or MySQL or whatever they prefer.
A good choice for single-process server systems could be SQLite3. It's not suitable for all systems, but if your system is designed to scale to a few dozen users at most, it'll probably work fine. (The amount of work you'd need to put into a server to make SQLite3 scale into the hundreds or thousands might argue for planning for a database server environment instead.)
http://www.sqlite.org/
might be a good option. It is embeddable so you don't need a specific database instance running wherever you deploy it
also, http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx is an option
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What's your favorite open source database design/modeling tool?
I'm looking for one that supports several databases, especially Firebird SQL but I can't find one on Google.
I've used DBDesigner before. It is an open source tool. You might check that out. Not sure if it fits your needs.
Best of luck!
Do you mean design as in 'graphic representation of tables' or just plain old 'engineering kind of design'. If it's the latter, use FlameRobin, version 0.9.0 has just been released.
If it's the former, then use DBDesigner. Yup, that uses Java.
Or maybe you meant something more like MS Access. Then Kexi should be right for you.
S.Lott inserted a comment, but it should be an answer: see the same question.
EDIT
Since it wasn't as obvious as I intended it to be, here follows a verbatim copy of S.Lott's answer in the other question:
I'm a big fan of ARGO UML from Tigris.org. Draws nice pictures
using standard UML notation. It does some code generation, but mostly
Java classes, which isn't SQL DDL, so that may not be close enough to
what you want to do.
You can look at the Data Modelling Tools list and see if anything
there is better than Argo UML. Many of the items on this list are
free or cheap.
Also, if you're using Eclipse or NetBeans, there are many
design plug-ins, some of which may have the features you're looking
for.
The DB Designer Fork project claims that it can generate FireBird sql scripts.
I like Clay Eclipse plugin. I've only used it with MySQL, but it claims Firebird support.
You may want to look at IBExpert Personal Edition. While not open source, this is a very good tool for designing, building, and administering Firebird and InterBase databases.
The Personal Edition is free, but some of the more advanced features are not available. Still, even without the slick extras, the free version is very powerful.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What's the widest overview and where are the deepest analysis of different replication methods and problems?
I would start here: wikipedia's replication article, then read a couple of related papers on general replication techniques such as the replicated distributed state machine approach (Paxos (pdf)) and epidemic replication (Google 'Epidemic Algorithms for Replicated Database Maintenance').
For a practical overview, perhaps consider investigating the source code for Postgresql, which seems to have some replication technologies built in. This presentation purports to have some details.
However, given that you're talking about deep analysis, the best approach is to make sure that you have a very sound understanding of fundamental distributed database systems issues. My copy of Date's Introduction to Database Systems has a few pages on distributed databases and their attendant issues. I should think a textbook dedicated to distributed databases would have much more detail - this one, for example, looks promising.
You can go much deeper if you read Ken Birman's work on Virtual Synchrony, and most things that Leslie Lamport has ever written. These will attack the problem from the perspective of a general distributed systems approach.
Good luck!
In my opinion, you should pick a mainstream database (such as Oracle) and study everything it offers and go from there.
Oracle offers:
Replication
Data guard (standby database and beyond- physical, logical)
Real Application Clusters - (multiple instances, one DB)
and more !
A bit of hands-on would not hurt so you can download a PC version and try various replication approaches on one PC!
Enjoy !
Though it is MS-SQL specific, you should have a look at "Pro SQL SERVER 2005 Replication" (Sujoy P. PAUL, Apress). I owe this guy many quiet nights... I guess you can find some extracts of this book as PDF files.
Wikipedia has some overview on the matter:
http://en.wikipedia.org/wiki/Multi-master_replication
http://en.wikipedia.org/wiki/Lazy_replication