Just wondering - on a straight RAID 5 system is there any advantage, performance or otherwise, to splitting a SQL 6.5 database over multiple database devices? Or for simplicity's sake am I just further off creating a single device and manually extending it as the database grows?
I want to know if it's possible for a database on multiple devices to put specific tables on specific devices?? and if this is possible how to do it?? Thanks for help
Does anyone have experience/advice with large databases (5-10 Gig)? If so, I was wondering about performance/other benefits of spanning a large database across multiple devices (different disks). Would anyone vote for or against doing this?
I am trying to backup a VLDB (800+gig) to multiple devices. I am using 4 disk drives. Assuming all devices have the same performance, should the 4 devices fill equally? (IE 200gig per drive) If so, what would might happen if one of the 4 drives only has 100 gig free with the other 3 having 300 gig free each?
What is the advantages/disadvantages of using Database Diagram and link all the tables in MS SQL Server Management Studio versus letting the application check and link the different tables at run time? Currently, I do not have all my tables linked in a Database Diagram. I do everything at run time in my application code behind. What are the best practices? Which is easier or perhaps more secure?
I have a content site where everything is currently in one SQL ServerDB. As I add features to the site, for example message boards andblogging, does it make sense to put those features in a separatedatabase? What would I lose and gain in doing so? Thanks so much.Erik
I am new to SS7. We are planning to rearrange our system databases so that the logs are on one drive and the data files are on a different drive. I found a really good white paper on this but just want to verify that there is not a problem with doing this. In sybase there were some restrictions on doing this. Any info you have would be appreciated.
I got a quick question. My database size has reached the limit of the drive, one option is to add a new database device on a different drive, then expand in across 2 drives. Anything I have to concern for a database on 2 database device on 2 logical drives (recoverability or ...?) compared to maybe another option:
reformat the whole disk and allocated more space to the original drive and recover (since in my case, all disk space have been formated) from backup....
Hi, I've to restore a bk into a new DB, because the old one has a lot of devices created on different places and phisical disks. Im not sure to do that, cause Ive heard some problems with this action.
The old Db has 10 devices of data and 10 devices of log, and I want to create only one device of data (sum of all the data devices) and only one device of log (sum of all log devices) Is it possible or not?
hi ! my boss is thinking of redoing our accounting system which is currently running on FOXPRO - we are planning on a VB/SQL SERVER platform.but he isn't convinced that the benefits of SQL server outweigh those offered by FOXPRO especially since everyone in the office is very comfortable with Foxpro.Can anyone give me some solid advantages of SQL SErver or any other RDBMS over Foxpro ?
If I have an application that has at most 20 users with an average of 3-4 concurrent requests to the server and the databases size is 1 gig probably to grow to at most 1.5 gigs in the next 5 years why would I choose Express over MSDE?
MSDE can take advantage of more than 1 gig of memory and can use 2 CPUs. I really don't see any benefit whatsoever in my case to go to SQL Express, in fact all I see is drawbacks.
I hear about upgrading all over the place but I just don't see any good reason in my situation. Am I missing something here?
This may be too general a question but I'm going to ask it anyway.
I'm moving data from a source DB (say A) to a target DB (say B). On A I need to join 3 tables and, after some lookups etc., I need to populate several tables in B. Inserting into B's tables involves sequential operations because in many cases I have to get back the value of an Identity column to use as in input value in a another table 'downstream'. Additionally, the tables in B are populated as a group i.e. if the insert on any one fails the entire group's insertion needs to be rolled back.
I set up a set of stored procedures to do this. The master Stored Proc opens a read-only cursor and for each row of the cursor executes the other SPs in proper sequence. Some of the SPs are 'enclosed' within a transaction to enable a Rollback on the group.
My major concern with this approach was the 'known' inefficiency of the cursor and the huge memory requirement it's use would entail (the cursor would pull about 15 million rows).
So I began looking into SSIS thinking it would be able manage the system resources aspect effectively and offer better performance overall. I've realized, however, that even in SSIS I would essentially need to first pull the 14 mil rows into a memory-resident object (or a temp table - whose benefit I'm not convinced of or haven't fully understood) before looping through each row to perform the data inserts into B.
So, is there any real advantage to this over the first approach ? Perhaps I haven't looked deep enough or wide enough. Any constructive suggestions / feedback would be highly appreciated.
Hi, Generally I write all my SQL in Stored Procedures instead of using adhoc queries. But I dont feel good about stored procedures when I come across situations like this.
Lets say that I have a stored procedure something like this
CREATE PROCEDURE dbo.proc_MYSP @CaseID char(10) AS SELECT * FROM TABLE1WHERE CASEID = @CASEID
Suppose in future if the field CASEID is changed to char(20) then I need to change the declaration of CaseID in all my stored procedures that take CaseID as input parameter. If I write adhoc queries then I need not worry about this. Is there any effective solution for a situation like this.
Are they're any real disadvantages or advantages in having 1 massive disk partioned to create 2 logical drives (not including the C drive) and separating the SQL Database File & Transaction Log so that it doesnt reside on the same logical drive?
Dear All, what are the advantages of changing compatibility level from 80 to 90? are there any disadvantages doing this on production machine? will it take any downtime? i've searched the google but i didnt get the correct info.
Arnav Even you learn 1%, Learn it with 100% confidence.
I am trying to evaluate the pros and cons of using SQL Server over oledb connection to an access database.
So far
Pros Cons Access: Doesnt need to be installed by user. 2GB Data limit
SQLExpress: Not sure yet - more than 2gb data User has to install SQL Server compact.
Is there anything iv missed?
Iv run a quick test to decide on speed my results seem to suggest that oledb is faster at writing data, and SQL Server is faster at reading.
The test program clears the database:
and times how long it takes to insert 10000 records, the read the 10000 records back for OLEDB, then SQL Express.
Code Snippet using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.OleDb; using System.Data.SqlClient; using System.Timers; namespace ConsoleApplication1 { class Program { static int a = 0; static int b = 0; static void Main(string[] args) {
Timer tmr0 = new Timer(1); Timer tmr1 = new Timer(1); tmr1.Elapsed += new ElapsedEventHandler(tmr1_Elapsed); OleDbConnection oledbcon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database1.mdb"); oledbcon.Open(); OleDbCommand oledbcmd = new OleDbCommand("INSERT INTO Table1 (Can) VALUES ('1')",oledbcon); oledbcmd.CommandText = "DELETE * FROM Table1"; oledbcmd.ExecuteNonQuery(); tmr0.Elapsed += new ElapsedEventHandler(tmr0_Elapsed); tmr0.Enabled = true; for (int i = 0; i < 10000; i++) { oledbcmd.CommandText = "INSERT INTO Table1 (Can) VALUES ('" + i.ToString() + "')"; oledbcmd.ExecuteNonQuery(); } int aa = a; a = 0;
oledbcmd.CommandText = "SELECT * FROM Table1"; OleDbDataReader oledbreader; oledbreader = oledbcmd.ExecuteReader(); while (oledbreader.Read()) { oledbreader.GetInt32(0); } tmr0.Enabled = false; SqlConnection sqlcon = new SqlConnection("Data Source=localhost\SQLEXPRESS;Initial Catalog=;Integrated Security = SSPI"); sqlcon.Open(); SqlCommand sqlcmd = new SqlCommand("CREATE DATABASE Test",sqlcon); try { sqlcmd.ExecuteNonQuery(); } catch { } sqlcmd.CommandText = "CREATE TABLE Table1 (num INT)"; try { sqlcmd.ExecuteNonQuery(); } catch { } sqlcmd.CommandText = "DELETE FROM Table1"; sqlcmd.ExecuteNonQuery(); tmr1.Enabled = true; for (int i = 0; i < 10000; i++) { sqlcmd.CommandText = "INSERT INTO Table1 (num) VALUES ('" + i.ToString() + "')"; sqlcmd.ExecuteNonQuery(); } int bb = b; b = 0; sqlcmd.CommandText = "SELECT * FROM Table1"; SqlDataReader sqlreader = sqlcmd.ExecuteReader();
while (sqlreader.Read()) { sqlreader.GetInt32(0); } tmr1.Enabled = false; Console.WriteLine("OLEDB"); Console.WriteLine("Inserted 10000 records in "+aa.ToString()+"ms"); Console.WriteLine("Read 10000 records in " + a.ToString() + "ms"); Console.WriteLine("TOTAL: " + ((a + aa).ToString()) + "ms"); Console.WriteLine("SQL SERVER"); Console.WriteLine("Inserted 10000 records in " + bb.ToString() + "ms"); Console.WriteLine("Read 10000 records in " + b.ToString() + "ms"); Console.WriteLine("TOTAL: " + ((b + bb).ToString()) + "ms"); Console.ReadKey();
For the access database create a access2003 mdb file with a table "Table1" and a colomn of type integer called "Can";
save it as C:database1.mdb
Then compile and run above.
My results wereslow machine)
OLEDB Inserted 10000 records in 1512ms Read 10000 records in 6ms TOTAL: 1518ms SQL SERVER Inserted 10000 records in 1853ms Read 10000 records in 1ms TOTAL: 1854ms
hi, I usually back up the database to a file within the sql server box. then use a tape backup to back up the whole directory of the sql server in the d: drive.
Is this right way to do or there is a better way ?
I know that you need to create a device in 6.5 to do backups, but in 7.0, it seems to take care of this for you. However, there is still a device folder in the Management folder of version 7.0's console tree. Why would it be better to back up to devices, rather than anywhere else on the hard drive. Is there any way to easily schedule the deletion of backups on these devices? I know that with 7.0's Maintenance plans, you can schedule old backups to be deleted. But how do you do that for devices?
I just tried to make a typed resultset from a SSCE v3.5 database, and recieved this message from Visual Studio:
"Typed ResultSets cannot be generated for tables on Microsoft SQL Server Compact 3.5 databases present on devices."
On the device, speed and low memory consumption is important. So it seems to me that this should be present ONLY on devices, because on the desktop we can just use the DataSet generator and not care about the overhead. Anyway, ripped from what would have been a nice feature, the alternatives that comes to mind are:
1. Making my own resultset generator 2. Use typed DataSets 3. Derive from SqlCeResultSet and store the Field names in it, to build my own typed resultset class.