I'm considering options for a large scale data warehouse. Even though SQL can theorectially scale to 10 Terabytes plus, in practice - will it be able to do it? Has anyone else actually done it? Or should Oracle be used?
We're about to put together a db solution for storing and searching large quantities of documents, with SAS running on top of it. Ultimately this is going to be a data mining project. We're talking about 2 million docs per year, ranging from 1 to possibly hundreds of pages of text per doc. We'll be pulling down roughly 40,000 docs per week, most likely XML, HTML, or SGML format. The user base is actually pretty small - probably no more than 5.
My gut feeling is to go with DB2, but to be fair I wanted to see if SQL 2005 would be up to the task. I'm not very familiar with the current version, but I udnerstand there have been some big improvements in scalability. It is the policy of SAS not to make recommendations. Does this sound like something SQL 2005 could do well, or should I stick with my initial plan and use DB2?
Hi,I'm implementing mass information procedures that is stored in a SQL Database.What methods and actions i need to take in order for the process to be faster in a case like this (its more then 1000000 rows).I'm trying also to improve the memory usage since i use the DataTable in C# and I'm looking for a better way to process the retrieved data. is there a better class or method thats improving the speed and preventing any memory leaks ?please advise....Thanks for any help,Lior S ;)
p.s. my email was incorrect in the last mail. Hi all, is there a sql 2k thread. Am interseted in finding out what the largest database size of a sqlserver database people have worked with. We have a 1.2 Terabyte db with about 150-200 million new rows being processed everyday. Would like to share some thoughts on this with other people who are working with this much data and what they are doing with it.
bhala ---------------------------------------- Please check us out at: http://www.bivision.org/bivision
I have been trying to develop an automatic way of programmatically accessing datasources and performing some predefined(-supported) processing on them.
The question I would like to ask you people has to do with numeric fields. What exactly is precision? Is it the maximum length in digits of a field, or is there more to it? What about a "field's scale", what is it and how does it affect a field's value handling?
Can you have different scales on a bar chart. I want to chart sales and quantity. Oracle lets you label the top of the bar chart as money and the bottom as quantity.
I am dividing my sales by one million and quantity by one thousand to make them similar in size on the same chart. I am using the sum of the sales/1000000 as a point label. Is there any way to limit the number of decimal places displayed. Currently it is displaying something like 1.94889312043; 1.95M would be better.
I have set the output columns to decimal and data scale of 2. And have also set the field to be 0.00, and in the csv desination file it always puts .000000, How can I get it to be 0.00?
This is not a real big deal, cause I worked around it.. but I just tried to INCREASE the scale on a decimal column & got an arithmatic overflow error. I can understand why this would occur if trying to decrease the scale, but not increasing it. This is not a computed column.. why does SQL give an overflow error if all it has to do is add a couple of zeros to the end? Yes, I know SQL considers them to be different data types, but this is still confusing me.
Our topology: Internal corporate network domain utilizing Integrated Windows Authentication between local workstations and the web and database servers. (domain similiar to: http://reports.ourdomain.com)
Machine #1: Windows 2003 Server w/SQL Server 2005 (SP2 and hotfixes applied) running SSRS. Machine #2: Windows 2003 Server w/SSRS only. (pointing to the SQL DB on Machine #1) Machine #3: Windows 2003 Server w/SSRS only. (pointing to the SQL DB on Machine #1) Device #1: Arrowpoint load balancer for Machines #2 & #3 (w/sticky sessions).
We recently added 2 web servers and configured them to load balance the web requests to a seperate SQL Server machine. (the load balancing is done thru an Arrowpoint device not Microsoft NLB)
The installation of reporting services (on Machine #2 & #3) went smoothly and the configuration was a breeze. But we could not access the "http://reports.ourdomain.com/Reports" directory for reporting services on the 2 web server machines. We received the "401.1 - Unauthorized" http error.
Since we were using a domain name to access the report server we made sure to update the <URL> tag in the config files.
We still received the error, so then we added a couple of entries to the HOSTS file on each web server: File location --> C:WINDOWSsystem32driversetcHOSTS
In order for the load balancers to "see" themselves from the domain reference we had to update the HOSTS file on each web server to have the domain name "reports.ourdomain.com" point to the IP Address of the specific web server. (we also added the IP of Machine #1 just to be safe):
Then the web servers were able to authenticate the users using IWA and NTLM and we could access the report servers normally. Even the the scheduled reports were being load balanced and emailed from the web servers which we didn't expect to happen. (pretty cool!)
I hope this helps someone else as it tooks us about 4 days to figure this out.
I am using the statement below to calculate the average scores of the columns. When the result set is returned I would like to have a scale of 2. I am currently returning a scale of 6. What could I do to fix this?
Thanks for you help, John
SELECT ((CONVERT(decimal(4,2),c2_3) + CONVERT(decimal(4,2),c2_15) + CONVERT(decimal(4,2),c2_16) + CONVERT(decimal(4,2),c2_17)) / 4 * 100) AS Score_A FROM dataquestionnaire WHERE confirmation = '10/1/2001-999-1'
Is there a way to set a MONEY datatype to a scale (decimal places) of 2? The default is set to 4 and I can't seem to find any resources on how to change it.
Do I have to add a check constraint to manually round to 2 decimals?? That seems unneccessary.... but if it is, boo-urns to sql server.
I have a question about Report services scale out deployment.
In the technet document it states that reporting services must be Enterprise edition for scale out deployment functionality, does anyone know if the database engine has to be Enterprise also, or can it be standard edition?
Here is the article excerpt from technet:
The Reporting Services edition must be Enterprise, Developer, or Evaluation. Standard edition does not support a scale-out deployment. You can create a scale-out deployment using a combination of editions as long as the edition supports the scale-out feature.
I have a UDF using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using System.Diagnostics; using System.Text; using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions { [SqlFunction(DataAccess = DataAccessKind.Read)] public static SqlDecimal GetCustomPrice(SqlGuid Item_Key, SqlGuid Company_Key) { SqlDecimal retvalue = new SqlDecimal(); try { StringBuilder sqlstr = new StringBuilder(); sqlstr.Append("SELECT A.Price "); sqlstr.Append("FROM Price A "); sqlstr.Append("JOIN Link_Table B "); sqlstr.Append("ON A.Price_Key = B.FKey "); sqlstr.Append("JOIN Lookup C "); sqlstr.Append("ON B.Lookup_Key = C.Lookup_Key "); sqlstr.Append("AND C.Group_Name = 'Price_Type' "); sqlstr.Append("AND C.Value = 'Custom' "); sqlstr.Append("JOIN Item D "); sqlstr.Append("ON B.PKey = D.Item_Key "); sqlstr.Append("JOIN Link_Table E "); sqlstr.Append("ON A.Price_Key = E.FKey "); sqlstr.Append("JOIN Lookup F "); sqlstr.Append("ON E.Lookup_Key = F.Lookup_Key "); sqlstr.Append("AND F.Group_Name = 'Price_Type' "); sqlstr.Append("AND F.Value = 'Custom' "); sqlstr.Append("JOIN Company G "); sqlstr.Append("ON E.PKey = G.Company_Key "); sqlstr.Append("WHERE D.Item_Key = @Item_Key "); sqlstr.Append("AND G.Company_Key = @Company_Key"); using (SqlConnection conn = new SqlConnection("context connection=true;")) { conn.Open(); SqlCommand cmd = new SqlCommand(sqlstr.ToString(), conn); SqlDataAdapter adap = new SqlDataAdapter(cmd); SqlParameter para = new SqlParameter(); para.ParameterName = "@Item_Key"; para.SqlDbType = SqlDbType.UniqueIdentifier; para.SqlValue = Item_Key; cmd.Parameters.Add(para); para = new SqlParameter(); para.ParameterName = "@Company_Key"; para.SqlDbType = SqlDbType.UniqueIdentifier; para.SqlValue = Company_Key; cmd.Parameters.Add(para); DataSet ds = new DataSet(); adap.Fill(ds); if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) {
The value in the record is a decimal 12,3 which is 0.950 and when it is returned from this UDF it is 1. Using the debuger the value is 0.950 until it gets to the calling program were it is 1. I have looked for an answer all over the place with not much luck Can anyone help I will be in their debt.
I have a case. I have 3 numeric fields and 1 category field to be displayed on bar chart reports. the problem is 2 of the 3 numeric fields have significant different scale value. so I need to add additonal scale at the right side of bar chart to represent 1 numeric fields + the 2 other numeric fields at the left side scale (Y). Please advice. Thanks.
I'm attempting to constrct a bar chart with the Gray Scale Plaette. All the other plaette works fine. However, for the gray scale one, the patterns just go random. It doesn't follow the legend. Have I done something wrong here?
If there is no way to get around this, can I construct one manually? Just wonder how can I do that, cos I want to get some report printed out.
I have a stored procedure which will bring me back the Min, Max and Mean of different result sets. What I want to do with the Y-Axis is set the Min scale value of the chart to be Min -%5 and the Max scale value to be Max + 5%.
Is there a way to change the Y-Axis values at report run time without spitting my own RDL?
I am working with an off the shelf app that controls decimal places through the application. All columns underlying the apps 'numeric' fields are floats. We are writing some scripts that need to compare numbers and some of them look like the second row
I have a varchar(len=9) field that I want to cast as numeric(9,2). Some of the field values are null but some have valid values (ie 1.00 or .05).
I am selecting data from one table and then updating a different table.
I have a select statement within an insert statement and then an update statement. I've tried a cast statement but not successfully. I get the following error.
[Execute SQL Task] Error: Executing the query "Exec sp_ESTLoadPOData" failed with the following error: "Error converting data type varchar to numeric.". Possible failure reasons:
Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
When I try to add an alert for Buffer cace hit ratio a value < 1 is always being returned. In performance monitor it returns > 90% all the time. How can I set up this alert/get the value to return as a percentage?
DESCRIPTION: The SQL Server performance counter 'Buffer cache hit ratio' (instance 'N/A') of object 'SQLServer:Buffer Manager' is now below the threshold of 90.00 (the current value is 1.00).
We are adding a second web server to our farm. Reporting Services is installed on one web server as Rpt01 instance and works just fine. We have installed the second web server also with an instance named Rpt01 and are now trying to configure to re-use the same database as the first server. When we restart services we get the error listed below.
I was wondering if there was an issue with the same named instances on two different web servers accessing the same ReportServer01 database? This is the error that we are getting. Any help would be appreciated. The curious thing is that our databases are named ReportServer01 and ReportServer01TempDB and not the name listed below.
ReportingServicesService!schedule!4!1/23/2007-15:40:20:: Unhandled exception caught in Scheduling maintenance thread: System.Data.SqlClient.SqlException: Invalid object name 'ReportServerTempDB.dbo.ExecutionCache'. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteNonQuery() at Microsoft.ReportingServices.Library.SchedulePollWorker.ClearConsistancyFlag() at Microsoft.ReportingServices.Library.SchedulePollWorker.CheckScheduleConsistancy(Object state)
We have a load-balanced Reporting Services installation that has two front-end machines that run IIS and the reporting services windows service, and a clustered Report Server database server. We have the front ends load balanced behind an F5. If we stop IIS on one of these servers, this traffic is easily and transparently directed to the other server.
My question is what happens if the Windows service on one of these servers is stopped? When Reporting Services is triggering subscription processing is it calling out to all machines it believes are a part of the scale-out deployment? So, if we install windows updates that require a reboot, is there a possibility that some of our subscription processing will be lost, or is RS smart enough to direct processing to the currently active node?
Is there a possibility in SSRS to have One stacked bar of cumulative sum of different ID's and and Line Chart at left hand of the Bar which will show the Progress as soon as the ID turn to Competed status.
I have been trying to do this , however there is huge problem of scaling:
The line should be finished at all the completed ID's SUM which is the lowest stack of the Bar.
However , the bar gets stretched to all of the space.
I have tried to place it into Tab lix, But it doesn't work.
I have process and people want to know percentile rank (on scale of 100), I'm bit lost as I have cases when I have let say 5 observations, so if use code below I can not got above number of observations:
Is there any way to get that numbers like RankWanted ??
; WITH cte AS ( SELECT 100 Cust_ID , 0.338129 Perc, 20 RankWanted union SELECT 300 Cust_ID , 0.487179 Perc, 40 RankWanted union SELECT 300 Cust_ID, 0.500000 Perc, 60 RankWanted union SELECT 400 Cust_ID, 0.541666 Perc, 80 RankWanted union SELECT 500 Cust_ID, 0.548780 Perc, 100 RankWanted ) SELECT Cust_ID, Perc,
I have two SQL 2014 Enterprise Edition installed with the SSRS (native) role installed.
Both server are configured separately with their own Report Server database. Now I want to configured a scale out deployment with a shared database.
On Server 1, I created a new Report Server database. On the second server, I change the database and joined the existing database. The problem is that the second server never shows up under Scale-Out deployment (Waiting to Join).
Hi everyone. I hope that my question isn't too broad, but here it goes...
I am trying to figure out the best way to scale a SQL Server database so that it can handle a billion simultaneous users querying the same tables, and can easily scale to handle many billions of simultaneous users. The database must also have 999.99% availability. The number of licences and amount of hardware needed is not an issue.
Hi, I have a derived column transformation which adds a new column of type Decimal with scale 2.
The expression is (6800 / 464)
Runs fine but it returns
14.65
While if I run any of the following queries in query analyzer SELECT 6800 / 464OR
SELECT CONVERT(DECIMAL(10,2), 6800 / 464)
They give me 14.66.
My question is, why both the tool of same product differs in the way they work ? and How could I have SSIS to work like TSQL ? I tried typecasting in derived column expression and ROUND function too. But still, the output is same.